配置 WSJPA 持久性提供程序

WebSphere® Application Server 持久性提供程序 (WSJPA) 是 Java 持久性 API (JPA) 2.0 的缺省提供程序。

关于此任务

虽然 JPA for WebSphere Application Server 持久性提供程序 WSJPA 基于 Apache OpenJPA 持久性提供程序,但它包含下列增强功能和不同之处:
  • 使用 DB2® pureQuery 功能部件的静态 SQL 支持
  • 访问意向支持
  • 经过增强的跟踪支持
  • 版本标识生成
  • 特定于 WebSphere 产品的命令和脚本
  • 经过翻译的消息文件
  • 检查内存中高速缓存以查找延迟装入的多对一或一对一关系。将 wsjpa.BrokerImpl 属性设置为 true 会指定 JPA 实现将在运行时尝试从内存中装入延迟字段(如果延迟字段的外键数据可用)。使用以下属性:
    <property name="wsjpa.BrokerImpl" value="checkCacheForLazyFields=true"/> 
    此属性在许多方案中会很有用。例如,假定您的个人实体 Person(A) 与另一个人 Person(B) 存在一对一关系,并且 Person(B) 存储在二级数据高速缓存中。如果设置了此属性,那么 JPA 实现查找 Person(A) 时,将使用从 Person(A) 装入的外键来填充从 Person(A) 至 Person(B) 的关系。
  • 下表说明 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
避免故障 避免故障: OpenJPA 兼容性属性不会移除 OpenJPA 为某些数据类型生成的代理类型,特别是日期类型,例如,GregorianCalendar。此省略可能导致反序列化问题。如果发生反序列化问题,那么系统会发出类似如下的错误消息:gotcha
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 属性设置的所有值。

过程


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_jpadefaultpp
文件名:tejb_jpadefaultpp.html