使用 OpenJPA 內容值,而不要使用 Kodo 專用內容值

WebLogic 使用 Kodo(而非 OpenJPA)進行其 JPA 1.0 提供者實作。 此規則會偵測中的 Kodo 特定內容值 persistence.xml 檔案、 該檔案必須位於 META-INF 資料夾。

下表顯示了可以轉換的值:
類別 說明
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
  • 有效值是預設值
kodo.ee.ManagedRuntime
  • 將 kodo.* 轉換成 org.apache.openjpa.*
  • 別名保持相同。

附註:WebSphere Traditional 8.5.5 版及 Liberty Web Profile 6.0 會使用 OpenJPA 進行其 JPA 2.0 實作。 WebSphere Traditional 9.0 版及 Liberty 的 Java EE 7 JPA 2.1 實作則會使用 EclipseLink。