Hibernate.orgCommunity Documentation

Chapter 4. Tutorial Using the Java Persistence API (JPA)

4.1. persistence.xml
4.2. The annotated entity Java class
4.3. Example code

This tutorial is located within the download bundle under entitymanager and illustrates

The previous tutorials used the Hibernate-specific hibernate.cfg.xml configuration file. JPA, however, defines a different bootstrap process that uses its own configuration file named persistence.xml. How this bootstrapping works is defined by the JPA specification. In Java™ SE environments the persistence provider (Hibernate in this case) is required to locate all JPA configuration files by classpath lookup of the META-INF/persistence.xml resource name.


persistence.xml files should provide a unique name for each persistence unit. This name is how applications reference the configuration while obtaining an javax.persistence.EntityManagerFactory reference.

The settings defined in the properties element were already discussed in Section 2.1, “The Hibernate configuration file”. Here the javax.persistence-prefixed varieties are used when possible. For the remaining Hibernate-specific configuration setting names notice that they are now prefixed with hibernate..

Additionally, the class element functions the same as discussed in Section 3.1, “The Hibernate configuration file”.

The entity is exactly the same as that from the annotations tutorial. See Section 3.2, “The annotated entity Java class”

The previous tutorials used the Hibernate APIs. This tutorial uses the JPA APIs.


Notice again the use of org.hibernate.tutorial.jpa as the persistence unit name, which matches from Example 4.1, “persistence.xml”


The code is pretty similar to Example 2.5, “Saving entities”. Here we use an javax.persistence.EntityManager as opposed to a org.hibernate.Session. JPA calls this operation persist instead of save.


Again, the code is pretty similar to Example 2.6, “Obtaining a list of entities”.