The fifth iteration of OpenJPA 2.0 is complete! Content of this iteration is based upon the 03/13/2009 draft of the JPA 2.0 specification. This iteration contains these new features:

  • Updated spec APIs and schemas based upon most current specification draft. New, unimplemented methods will throw an UnsupportedOperationException.
  • Support new JPA LockModeType in find, lock and refresh methods in the EntityManager interface. A new "mixed" lock manager is introduced implementing the new mixed optimistic and pessimistic entity locking semantics.
  • AttributeOverride enhanced to allow navigation of multiple levels of embeddables, use with map keys and values, and use with element collections.
  • AssociationOverride enhanced to support specification of a join table and override of embeddables within relationships.
  • Support for general and qualified identification variables in JQPL selections. KEY, ENTRY, and VALUE qualifiers can now be used within the SELECT clause.
  • Lock and query timeout hint values can now be specified on applicable entity manager and query methods.
  • Lock mode (including the new pessimistic lock modes) can be specified on query methods and named queries. This allows for fine-grained locking configuration at the query level.
  • The unwrap method can be used to get an instance of OpenJPA entity manager and query interfaces.
  • Single entities or an entity graph may be detached from the entity manager. Specifying the new cascade type of DETACH or ALL on relationships allows selective detachment of an entity graph.
  • The third argument of the JPQL SUBSTRING function is now optional.
  • JPQL queries have been enhanced to support the projection of element collections, nested embeddables, and relationships from embeddables.

These new features are available in the latest nightly snapshot build. Be aware that the JPA 2.0 specification is not final so these features are subject to change.

Many thanks to those who contributed to this iteration! If you'd like to be a contributor to the OpenJPA project, please post your interest on the dev mailing list or contact one of the active committers.

-Jeremy

  • No labels