Release notes: IBM WebSphere Application Server Version 7 Java™ Persistence API (JPA)2.0 Open Alpha
This thread contains important details about using the IBM WebSphere V7 Java Persistence API (JPA) 2.0 Open Alpha, including known problems and restrictions that may not be included in the documentation. This thread will be updated as new issues are discovered and documented.
Do not use the IBM WebSphere Application Server Version 7 Java Persistence API (JPA) 2.0 open alpha release for performance evaluations or for publishing performance benchmark results. The alpha release has not gone through the complete performance quality checks, which include aggressive production environment stress tests.
For platform support, please refer to the
Getting Started Guide
OpenJPA release notes
IBM WebSphere Application Server Version 7 JPA 2.0 Open Alpha is based on OpenJPA 2.0 Milestone 3. Many known issues in this OpenJPA release are documented in the
OpenJPA 2.0-M3 release notes
- WebSphere Application Server must be at version 7.0.0.5
- JPA 2.0 thin client JAR file must be first in the class path
- Bean Validation supported in Java SE only
- Annotation Processor tool and metamodel generation
- No support for delimited identifiers
- Profile Management Tool will not start after installing the IBM WebSphere Application Server V7 JPA 2.0 Open Alpha
- Embedded objects with CLOB fields cause errors with Derby 10.3.3.1 and later
- Cache data statistics may be inaccurate when using embeddables
- L2 cache configuration limitations
- @OrderColumn(updatable=false) does not prevent the UPDATE of order column
WebSphere Application Server must be at version 7.0.0.5
IBM WebSphere Application Server Version 7 JPA 2.0 Open Alpha requires you to have installed WebSphere Application Server Version 7 with fix pack 5. Higher and lower versions and fix pack levels are not supported. Fix pack 5 can be found
here
JPA 2.0 thin client JAR file must be first in the class path
For thin client applications to use JPA 2.0, the JPA 2.0 thin client JAR file (com.ibm.ws.jpa.thinclient_7.0.0.jar) must be the first entry in the client application's class path
Bean Validation supported in Java SE only
Bean Validation support will not work inside a WebSphere Application Server container. It is currently only supported in Java SE applications.
Annotation Processor tool and metamodel generation
Compiling your source code with Java SDK 6.0 or later with the
-processor option will generate the canonical metamodel. For example, the following command:
javac -processor org.apache.openjpa.persistence.meta.AnnotationProcessor6 --Aout=./generated org.acme.Foo
will generate source code for the canonical metamodel class for org.acme.Foo at generated/org/acme/Foo_.java. The only requirement is that the compiler invocation classpath must include the JPA and OpenJPA libraries."
Delimited Identifiers are not supported
There is no support for delimited identifiers in this release.
Profile Management Tool may not start after installing the IBM WebSphere Application Server V7 JPA 2.0 Open Alpha
After installing the IBM WebSphere Application Server Version 7 JPA 2.0 open alpha, the Profile Management Tool (PMT), which is located in the <WAS_HOME>/bin/ProfileManagement/ directory, may not start. If this occurs you will see a PMT dialog box that indicates that an error has occurred. There are two ways to work around this problem.
1) Instead of using the Profile Management Tool to create one or more profiles, you can use the manageprofiles command. See the
WebSphere Application Server V7 Information Center for more information on the manageprofiles command.
2) Move three files that were backed up during the installation process out of the <WAS_HOME>/plugins directory. If you decide to move the files, you must move the files from your temporary location back to the <WAS_HOME>/plugins directory before you uninstall the IBM WebSphere Application Server V7 JPA 2.0 Open Alpha as specified in the Uninstalling the IBM WebSphere Application Server Version 7 JPA 2.0 open alpha section of the Getting Started Guide. The recommend steps to move the three files are:
- Create a directory under <WAS_HOME> called jpabackup.
- Move the following files from <WAS_HOME>/plugins to <WAS_HOME>/jpabackup.
- com.ibm.ws.jpa.jar.JPA20
- javax.j2ee.persistence.jar.JPA20
- com.ibm.ws.runtime.jar.JPA20
Embedded objects with CLOB fields cause errors with Derby 10.3.3.1 and later
When using an Embedded object that contains a CLOB field to access a Derby database table and using the Derby JDBC Network Client Driver, you may encounter this error:
org.apache.openjpa.persistence.PersistenceException: You cannot invoke
other java.sql.Clob/java.sql.Blob methods after calling the free() method
or after the Blob/Clob's transaction has been committed or rolled back.
This problem occurs with Derby versions 10.3.3.1 through 10.5.*.
If Embedded CLOB support is being used, possible workarounds are to use the Derby Embedded JDBC driver with these releases of Derby, or use an earlier release of Derby.
Cache data statistics may be inaccurate when using embeddables
When using entities with embeddables, the level 2 cache statistics may not be correct.
L2 cache configuration limitations
The cache retrieve mode and cache store mode properties may only be specified on the Persistence Unit or Persistence Context level. Setting the cache mode properties on the EntityManager.find(), EntityManager.refresh(), or Query.setHint() operations is not supported.
@OrderColumn(updatable=false) does not prevent the UPDATE of order column
If you have an existing collection with two items, then you remove an item and then add the item back in, the table is updated but the order column is not updated. If you add a third item, the new item is inserted into the collection.