必须迁移 OpenJPA 和 WebSphere JPA 配置属性

该规则检测 persistence.xml 文件中特定于 OpenJPA 和 WebSphere 供应商的 JPA 2.0 配置属性。必须手动将这些属性迁移到标准化属性或 EclipseLink 属性。 该规则标记具有以 openjpa.*wsjpa.* 开头的 name 属性的任何 property 元素,但 openjpa.jdbc.Schema 属性(由 openjpa.jdbc.Schema 规则标记)和 openjpa.LockManager 属性(由 openjpa.LockManager 规则标记)除外。 wsjpa 配置属性特定于在 OpenJPA 上构建的 WebSphere Traditional 和 Liberty JPA 2.0 实现。

在以下 persistence.xml 文件中,该规则标记了所有四个 property 元素。

<persistence>
  <persistence-unit name="openjpa">
    <properties>
      ...
      <property name="openjpa.ConnectionURL "
                   value="jdbc:db2://host.ibm.com:50000/mydb2user" />
      <property name="openjpa.ConnectionDriverName" value="com.ibm.db2.jcc.DB2Driver" />
      <property name="openjpa.ConnectionUserName" value="mydb2user" />
      <property name="openjpa.ConnectionPassword" value="password" />      
      ...
    </properties>
  </persistence-unit>
</persistence>

要解决该问题,请将属性名称更改为标准化属性(如果有标准化属性可用)。

<persistence>
  <persistence-unit name="openjpa">
    <properties>
      ...   
      <property name="javax.persistence.jdbc.url"
                   value="jdbc:db2://host.ibm.com:50000/mydb2user" />
      <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
      <property name="javax.persistence.jdbc.user" value="mydb2user" />
      <property name="javax.persistence.jdbc.password" value="password" />
      ...
    </properties>
  </persistence-unit>
</persistence>

缺省情况下,在 EclipseLink 中启用了二级高速缓存。如果在 persistence-unit 中设置了 <property name="openjpa.DataCache" value="true"/>,可移除该属性。 有关更多信息,请参阅禁用持久性单元二级高速缓存规则。

有关迁移特定于供应商的 JPA 配置属性的更多信息,请参阅以下资源: