WebLogic 使用 Kodo 進行其 JPA 1.0 提供者實作。此規則會偵測是否使用 kodo.* 內容。Kodo 是以 OpenJPA 為基礎。同樣地,OpenJPA 也是 JPA 1.0 及 2.0 的 WebSphere 預設 JPA 提供者。但是,從 JPA 2.1 開始,WebSphere 已切換至 EclipseLink 作為其預設 JPA 提供者。
在 Java 檔中內容名稱為字串文字的位置可以指定 Kodo 內容。會標示下列程式碼範例:
String var = "kodo.FilterListeners";
或
map.put("kodo.Profiling", "someValue");
在 persistence.xml 檔(必須位於 META-INF 資料夾)中可以指定 Kodo 內容。例如,會偵測到 persistence.xml 檔中的下列內容:
<property name="kodo.FilterListeners" value="some value" />
如果您的應用程式是使用 Kodo,最簡單的應用程式移轉解決方案是使用 JPA 2.0。相較於使用最新的 JPA 版本,使用 JPA 2.0 將需要較少的應用程式變更,因為 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 2.0 規則,請導覽至規則選項對話框,然後在「WebLogic JPA 移轉」下勾選 JPA 2.0 種類。這會啟用將已知 Kodo 類別及內容移轉至 OpenJPA 的規則集。此外,請清除 JPA 2.1 勾選框以停用 JPA 2.1 規則。
完成必要的應用程式變更之後,請將應用程式伺服器配置為使用 JPA 2.0(而非 JPA 2.1)。