WebLogic 将 Kodo 用于其 JPA 1.0 提供程序实现。此规则会检测 kodo.* 类和 com.solarmetric.* 类。Kodo 基于 OpenJPA。
同样,OpenJPA 是针对 JPA 1.0 和 2.0 的 WebSphere 缺省 JPA 提供程序。但是,从 JPA 2.1 开始,WebSphere 切换至 EclipseLink 作为其缺省 JPA 提供程序。
如果应用程序使用 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 规则和自动修复的优势。 您需要导航到规则选择对话框并选中 JPA 迁移下的 JPA 2.0 WebLogic 类别。 这将启用将已知 Kodo 类和属性迁移到 OpenJPA 的规则集。
另外,清除 JPA 2.1 复选框以禁用 JPA 2.1 规则。
在完成必需的应用程序更改后,配置应用程序服务器以使用 JPA 2.0,而不是 JPA 2.1。