请勿使用 Kodo 属性

WebLogic 将 Kodo 用于其 JPA 1.0 提供程序实现。此规则会检测是否使用了 kodo.* 属性。Kodo 基于 OpenJPA。同样,OpenJPA 是针对 JPA 1.0 和 2.0 的 WebSphere 缺省 JPA 提供程序。但是,从 JPA 2.1 开始,WebSphere 切换至 EclipseLink 作为其缺省 JPA 提供程序。

Java 文件中的属性

可在属性名称为 String 字面值的 Java 文件中指定 Kodo 属性。下列代码示例会被标记:
String var = "kodo.FilterListeners" ;

map.put("kodo.Profiling", "someValue");

persistence.xml 文件中的属性

可在 persistence.xml 文件中指定 Kodo 属性,此文件必须位于 META-INF 文件夹中。例如,检测 persistence.xml 文件中的以下属性:
<property name=" kodo.FilterListeners " value="some value " />

解决方案

如果应用程序使用 Kodo,那么最简单的应用程序迁移解决方案是使用 JPA 2.0。使用 JPA 2.0 所需的应用程序更改少于使用最新的 JPA 版本,因为 Kodo 基于 OpenJPA,这是用于针对 JPA 2.0 的 WebSphere 实现的相同实现。但是,JPA 2.1 或更高版本基于 EclipseLink。JPA 实现中的差别是指针对应用程序的潜在行为更改。此外,Kodo 中提供的属性在 EclipseLink 中可能没有等效属性。
以下建议适用于这两个迁移选项:

其他资源: