Until you get the answer from Emmanuel I'll jump in here ... the replies you've gotten so far haven't really told you much.
JPA is essentially a wrapper around Hibernate (and TopLink, OpenJPA, etc). Meaning that it is a set of standardized APIs that use a defined peristence provider. It is much like JMS being able to communicate to various message providers or
JDBC communicating with different databases.
The advantage of JPA is that, even tho it is part of the EJB 3.0 spec, it does not require a container to run ... you can use it in non-EJB apps. JPA provides a consistent interface to different ORM persistece providers, so, in theory,
you should be able to change out the provider, say from TopLink to Hibernate, with no code changes other than the persistence.xml file (the JPA configuration file).
The downside is that, since it is meant to provide a consisent API across different providers, unique features of individual providers are not supported. For instance, Hibernate's criteria API is not supported in JPA. If you want to use it, you can even while using JPA, the problem is that you are no longer provider neutral and should you want to change providers you will have to change code ... or you can use some 3rd party criteria implementation that promises to work across providers (like Rich Hightower's Krank project -- specificially his GenericDAO stuff ... there are others too).
Anyway, just a quick overview comparison -- they're meant to be mutually inclusive rather than exclusive.