该规则检测 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 配置属性的更多信息,请参阅以下资源: