Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
In most examples throughout the book, we use JPA (Java Persistence API) for the persistence logic. We use Hibernate as our JPA implementation. However, as it is an open source framework at the forefront of ORM innovation, some of Hibernate’s features are not yet standardized. In particular, JPA does not yet support these features:
The JPA query language is not as rich as that in Hibernate. For instance, JPA does not support Hibernate’s query-by-criteria or query-by-example.
Hibernate offers more methods to manage objects with detached state; JPA supports only one merge() operation in the EntityManager.
The object type system in Hibernate is much richer than that in JPA.
Hibernate gives you more control over the size of the extended persistence context.