配置 WSJPA 持久性提供程序
WebSphere® Application Server 持久性提供程序 (WSJPA) 是 Java 持久性 API (JPA) 2.0 的缺省提供程序。
关于此任务
- 使用 DB2® pureQuery 功能部件的静态 SQL 支持
- 访问意向支持
- 经过增强的跟踪支持
- 版本标识生成
- 特定于 WebSphere 产品的命令和脚本
- 经过翻译的消息文件
- 检查内存中高速缓存以查找延迟装入的多对一或一对一关系。将 wsjpa.BrokerImpl
属性设置为 true 会指定 JPA 实现将在运行时尝试从内存中装入延迟字段(如果延迟字段的外键数据可用)。使用以下属性:
此属性在许多方案中会很有用。例如,假定您的个人实体 Person(A) 与另一个人 Person(B) 存在一对一关系,并且 Person(B) 存储在二级数据高速缓存中。如果设置了此属性,那么 JPA 实现查找 Person(A) 时,将使用从 Person(A) 装入的外键来填充从 Person(A) 至 Person(B) 的关系。<property name="wsjpa.BrokerImpl" value="checkCacheForLazyFields=true"/>
- 下表说明 JPA for WebSphere Application Server 持久性提供程序配置属性缺省值与 Apache OpenJPA 提供程序配置属性缺省值的区别:
表 1. 比较. JPA for WebSphere Application Server 持久性提供程序与 Apache OpenJPA 提供程序的比较 属性 Apache OpenJPA 缺省值 JPA for WebSphere Application Server 持久性提供程序缺省值 openjpa.Compatibility StrictIdentityValues=false StrictIdentityValues=true openjpa.RuntimeUnenhancedClasses 不受支持 警告 openjpa.DynamicEnhancementAgent true False open.jdbc.DriverDataSource auto simple

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]
除属性覆盖外,使用缺省 JPA for WebSphere Application Server 持久性提供程序还暗示使用以下 JPA for WebSphere Application Server 类(这些类会覆盖 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;
如果未在 Enterprise JavaBeans (EJB) 模块中的 persistence.xml 文件的 <provider> 元素中配置 JPA 提供程序,那么将使用当前为此服务器配置的缺省 JPA 提供程序。该产品与定义为缺省提供程序的 JPA for WebSphere Application Server 持久性提供程序打包在一起。但是,可覆盖此缺省值并通过管理控制台来指定另一个缺省值。
可以通过两种方法中的一种来设置缺省持久性提供程序。
如果在 WebSphere Application Server V7.0 之前的产品中通过 Java 虚拟机 (JVM) 属性设置了缺省持久性提供程序、缺省 Java 事务 API (JTA) 数据源 Java 命名和目录接口 (JNDI) 名称和缺省非 JTA 数据源 JNDI 名称值,那么通过管理控制台对这些值进行的任何更改都会覆盖使用 JVM 属性设置的值。
这些属性包括 com.ibm.websphere.jpa.default.provider、com.ibm.websphere.jpa.default.jta.datasource 和 com.ibm.websphere.jpa.default.nonjta.datasource。建议您不要使用对这些属性的支持。任何通过这些属性设置的值都将作为缺省值显示在此面板上。通过管理控制台面板设置的这些值会覆盖通过 JVM 属性设置的所有值。