Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.4
-
None
-
None
Description
Aries-1047 moved the JPA support up to JPA 2.1. However classes that implement the JPA 2.1 API cannot work against the JPA 2.0 API.
For example, javax.persistence.EntityManager has gained a number of new methods such as createStoredProcedureQuery() which return an object of class javax.persistence.StoredProcedureQuery. The class does not exist in JPA 2.0.
A class that implements the 2.1 version of EntityManager can not be loaded under the JPA 2.0 API.
org.apache.aries.jpa.container.impl.EntityManagerWrapper implements javax.persistence.EntityManager. This means that it now has public API methods with class signatures that can not possibly work in a JPA 2.0 environment. Attempts to do so yield errors of the form,
java.lang.ClassNotFoundException: javax.persistence.StoredProcedureQuery cannot be found by org.apache.aries.jpa.container.context.
We need the JPA 2.0 code back. This will first be achieved by restoring the JPA container code to /trunk/jpa20/... at the svn level before the commit that broke it, http://svn.apache.org/viewvc?view=revision&revision=1610718.
Most of the code remains common, but will require additional effort to refactor: this can be done, if desired, under future JIRAs.
Attachments
Issue Links
- is related to
-
ARIES-1251 Support jpa 2.0 and 2.1 with the same code base
- Resolved
- relates to
-
ARIES-1047 Update Aries for JPA 2.1
- Resolved