使用 WebSphere 延伸來定義 CMP 對映

weblogic-cmp-rdbms-jar.xml 檔包含從 EJB 屬性至資料庫直欄(由「儲存器管理的持續性 (CMP)」及「儲存器管理的關係 (CMR)」使用)的對映。

此規則會偵測 weblogic-cmp-rdbms-jar.xml 檔中的 CMP 欄位對映。 當提供自動修復時,它會嘗試產生 WebSphere(R ) 所需的映射。應用程式伺服器 Container Managed Persistence 工作所需的映射。 這些對映對資料庫類型和綱目是敏感的。 因此,自動修復將盡最大努力為資料庫選擇正確的模式。

解決方案

可以在規則的「內容」畫面中配置資料庫供應商。 如果設為自動偵測,則 weblogic-cmp-rdbms-jar.xml 檔中的 database-type 設定會決定使用的資料庫類型。 如果未指定任何類型,則會使用 Oracle。 只有 Db2®、Oracle、SQLServer 和 SQLServer2000 是支援的資料庫類型。 無法移轉 MySQL、POINTBASE、Informix® 和 Sybase。

下表顯示了使用的 Java 類型和資料庫直欄類型。 如果資料庫表格綱目衍生自此格式,則 CMP 可能不工作。 在這些情況下,可以使用 Rational Application Developer「EJB 至 RDB 對映精靈」中的「結合發展」設定,來移轉 CMP 對映。

Java 類型Db2OracleSQLServer
java.lang.Integer/intINTEGERINTEGERINTEGER
java.lang.Double/doubleDOUBLE PRECISIONDOUBLE PRECISIONDOUBLE PRECISION
java.lang.Float/floatFLOATFLOATFLOAT
java.lang.Short/shortINTEGERINTEGERSMALLINT
java.lang.Long/longBIGINTINTEGERDECIMAL
java.math.BigDecimalDECIMALDECIMALDECIMAL
java.lang.StringVARCHARVARCHARVARCHAR
java.lang.Character/charCHARCHARCHAR
java.lang.Byte/byteINTEGERINTEGERTINYINT
java.lang.Boolean/booleanINTEGERINTEGERINTEGER
java.sql.DateDATEDATEDATETIME
java.sql.TimeTIMEDATEDATETIME
java.sql.TimestampTIMESTAMPDATEDATETIME
byte[]/java.io.SerializableVARCHAR FOR BIT DATARAWIMAGE

樂觀鎖定

移轉期間,如有可能,會移轉樂觀鎖定設定。 在 weblogic-cmp-rdbms-jar.xml 檔中,將 <verify-columns> 設為時間戳記版本 時,將為 <optimistic-column> 下指定的直欄啟用樂觀鎖定。 只有將該直欄對映至 CMP 欄位(在 WebLogic 中是選用欄位)時,才能執行此設定。 如果未對映該直欄,則必須手動將新欄位新增至 Enterprise Bean,並將其對映至 weblogic-cmp-rdbms-jar.xml 檔中的直欄。

<verify-columns> 值為「已讀」或「已修改」時,不支援進行移轉。