WebLogic 将 Kodo 用于其 JPA 1.0 提供程序实现。此规则会检测是否使用了 kodo.* 属性。Kodo 基于 OpenJPA。同样,OpenJPA 是针对 JPA 1.0 和 2.0 的 WebSphere 缺省 JPA 提供程序。但是,从 JPA 2.1 开始,WebSphere 切换至 EclipseLink 作为其缺省 JPA 提供程序。
可在属性名称为 String 字面值的 Java 文件中指定 Kodo 属性。下列代码示例会被标记:
String
var = "kodo.FilterListeners"
;
或
map.put("kodo.Profiling", "someValue");
可在 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 中可能没有等效属性。
以下建议适用于这两个迁移选项:
如果关注于迁移到最新 JPA 规范,那么迁移将需要额外的规划和调查。针对 OpenJPA 至 EclipseLink 迁移,提供多种资源。因为 Kodo 基于 OpenJPA 构建,适合 OpenJPA 的建议通常也适用于 Kodo。以下资源用于 Kodo/OpenJPA 和 EclipseLink 之间的迁移:
如果正在寻找更快速的迁移,更简单的解决方案是将应用程序迁移到 JPA 2.0。 在这种情况下,您可以利用 利用 Kodo OpenJPA 规则和自动修复功能。 provided.You 您需要导航到规则选择对话框并选中 JPA 迁移下的 JPA 2.0 类别下的 WebLogic JPA 迁移。 这将启用将已知 Kodo 类和属性迁移到 OpenJPA 的规则集。
另外,清除 JPA 2.1 复选框以禁用 JPA 2.1 规则。
在完成必需的应用程序更改后,配置应用程序服务器以使用 JPA 2.0,而不是 JPA 2.1。