+

Search Tips   |   Advanced Search

Configure the WSJPA persistence provider

The WebSphere Application Server persistence provider (WSJPA) is the default provider for Java Persistence API (JPA) 2.0.

While built from the Apache OpenJPA persistence provider, the JPA for WAS persistence provider, WSJPA, contains the following enhancements and differences:

The OpenJPA compatibility property does not remove proxy types that OpenJPA generates for certain data types, especially date types such as GregorianCalendar. This omission can cause problems with deserialization. If a deserialization problem occurs, an error message, similar to the following message, is issued.

Error Message is:org.codehaus.jackson.map.JsonMappingException: 
Can not construct instance of org.apache.openjpa.util.java$util$GregorianCalendar$proxy, 
problem: no suitable creator method found at 
[Source: org.apache.http.conn.EofSensorInputStream@d83fbd5; line: 1, column: 4094]

In addition to the property overrides, the use of the default JPA for WAS persistence provider also implies the use of the following JPA for WAS classes which override the corresponding classes in Apache OpenJPA:

com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager;
com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCBrokerFactory;
com.ibm.ws.persistence.jdbc.sql.DB2Dictionary;
com.ibm.ws.persistence.jdbc.sql.OracleDictionary;
com.ibm.ws.persistence.jdbc.sql.SQLFactoryImpl;
com.ibm.ws.persistence.jdbc.sql.SQLServerDictionary;
com.ibm.ws.persistence.kernel.WsJpaBrokerImpl;
com.ibm.ws.persistence.kernel.WsJpaFinalizingBrokerImpl;

If no JPA provider is configured in the <provider> element of the persistence.xml file within an EJB module, the default JPA provider that is currently configured for this server is used. The product is packaged with the JPA for WAS persistence provider defined as the default provider. However, it is possible to override this default and specify a different default through the administrative console.

We can set your default persistence provider in one of two ways.

If we have a default persistence provider, default Java Transaction API (JTA) data source JNDI name, and default non-JTA data source JNDI name values that were set in the product before WAS v7.0, through the JVM properties, any change to these values through the administrative console override values that were set with the JVM properties.

These properties include com.ibm.websphere.jpa.default.provider, com.ibm.websphere.jpa.default.jta.datasource, and com.ibm.websphere.jpa.default.nonjta.datasource. Support for these properties has been deprecated. Any values that were set through these properties are displayed as default values on this panel. These values that are set through the administrative console panel overrides any values set through the JVM properties.


Tasks


Subtopics

  • Default Java Persistence API settings
  • WAS persistence providers
  • Use third-party persistence providers
  • Configure the default JTA and non-JTA data source JNDI names