使用 OpenJPA 属性值而不是特定于 Kodo 的属性值

WebLogic 将 Kodo(而不是 OpenJPA)用于其 JPA 1.0 提供程序实现。 此规则会将特定于 kodo 的属性值转换为 OpenJPA。 此规则会检测 Java 文件中特定于 kodo 的属性值。 属性名称和属性值必须是 String 字面值参数 put 设置。 属性名必须为第一个参数(键),并且属性值必须为第二个参数。 此规则仅对属性值进行转换。 必要时,另一规则会对属性名进行转换。

例如,以下代码会被标记:
map.put("kodo.Log", "Remote=TRACE, SQL=TRACE");

map.put("kodo.Log", "SQL=TRACE");
自动修复将删除 Remote=TRACE 值,因为它不是有效的 OpenJPA 值。

下表显示可以转换的值:
描述
kodo.Log
  • 除去值 Configuration、Remote、Manage 和 Profile
  • 将 kodo.* 转换为 openjpa.*
kodo.ConnectionFactoryProperties
  • 有效值为 QueryTimeout、PrettyPrint 和 PrettyPrintLineLength。
  • 除去所有其他值
kodo.ConnectionFactory2Properties
  • 有效值为 QueryTimeout、PrettyPrint 和 PrettyPrintLineLength。
  • 除去所有其他值
kodo.MetaDataFactory
  • 有效值为 jpa 或 org.apache.openjpa.persistence.PersistenceMetaDataFactory。
  • 除去所有其他值并将值设为 jpa
kodo.LockManager
  • 将 kodo.* 转换为 org.apache.openjpa.*
  • 别名仍然相同。
kodo.OrphanedKeyAction
  • 将 kodo.* 转换为 org.apache.openjpa.*
  • 别名仍然相同。
kodo.SavepointManager
  • 将 kodo.* 转换为 org.apache.openjpa.*
  • 别名仍然相同。
kodo.Sequence
  • 将 kodo.* 转换为 org.apache.openjpa.*
  • 别名仍然相同。
kodo.DataCache
  • 仅选择第一个高速缓存条目。所有其他条目都会被废弃。
  • 如果第一个条目设置为 tangosol、lru 或 gemfire,那么值设置为“true”。
  • 如果第一个条目具有值,那么它们会被保留。例如 true(CacheSize=100)。
  • 如果第一个条目为 false,那么它仍然为 false。
kodo.QueryCompilationCache
  • 值 kodo.util.CacheMap 转换为 org.apache.openjpa.util.CacheMap。
  • 值 java.util.HashMap 转换为 org.apache.openjpa.lib.util.ConcurrentHash。
  • 别名仍然相同。
kodo.jdbc.DBDictionary
  • 将 kodo.* 转换为 org.apache.openjpa.*
  • 别名仍然相同。
kodo.jdbc.SchemaFactory
  • 将 kodo.* 转换为 org.apache.openjpa.*
  • 别名仍然相同。
kodo.jdbc.MappingDefaults
  • 有效值为 default。
kodo.ee.ManagedRuntime
  • 将 kodo.* 转换为 org.apache.openjpa.*
  • 别名仍然相同。

注:WebSphere Traditional V8.5.5 和 Liberty Web Profile 6.0 将 OpenJPA 用于其 JPA 2.0 实现。 WebSphere Traditional V9.0 和 Liberty 的 Java EE 7 JPA 2.1 实现使用 EclipseLink。