ORM Tool Hibernate 4.3 Released, Implementing JPA 2.1 Specification
The final version of Hibernate ORM 4.3, a Java-based Object-Relational Mapping, ORM, framework, was recently released, bringing support for stored procedures and entity graphs. Hibernate 4.3 is a certified implementation of the JPA 2.1 Specification, JSR 338, released in May 2013.
Main focus for this release has been on support for the JPA 2.1 specification and the new features defined which include:
- Standardized support for working with stored procedure and function calls, across both providers and database vendors.
- Definition and execution of UPDATE and DELETE queries can now be made in a type-safe way.
- Entity listeners, for implementing lifecycle events in separate classes, may now use the CDI standard, (JSR-299), for injection of dependencies.
- AttributeConverters, which enable conversions of basic values between the representation in the database and in the corresponding objects.
- Entity Graphs for defining how an entity and its sub-elements are loaded. How a graph is loaded may also be changed dynamically.
- A standardized way of how schema generation is performed across providers together with a baseline of configuration settings all providers understand.
- Synchronization of persistence context with the current transaction can now be controlled via SynchronizationType.
- An object can now be constructed using argument values returned from a SQL query by using the @ConstructorResult annotation.
Other significant changes, not related to the new JPA specification, include:
- Increased support for OSGi environments. The plan is to further improve the support in Hibernate 5.
- Support for inline dirty checking, finding which entities state has changed, based on new bytecode enhancement support within Hibernate.
Documentation has been updated to correspond with the new version.
Still no sign of OpenJPA activity on it.
Support for inline dirty checking, finding which entities state has changed, based on new bytecode enhancement support within Hibernate.
Didn't a Hibernate originator once say "bytecode enhancement is evil" ? Why the change of heart?