jbosscmp-jdbc.xml 檔包含從 EJB 屬性至資料庫直欄(由 Container-Managed Persistence (CMP) 和 Container-Managed Relationships (CMR) 使用)的對映。
此規則會偵測 jbosscmp-jdbc.xml 檔中的 CMP 欄位對映。 自動修正將嘗試產生 WebSphere(R ) 所需的映射。應用程式伺服器 Container-Managed Persistence 工作所需的映射。 這些對映對資料庫類型和綱目是敏感的。 自動修復將盡最大努力為資料庫選擇正確的模式。
可以在規則的「內容」畫面中配置資料庫供應商。 如果設為自動偵測,則 jbosscmp-jdbc.xml 檔中的 database-type 設定會決定使用的資料庫類型。如果未指定任何類型,則會使用 Db2。只有 DB2®、Oracle、SQLServer 和 SQLServer2000 是支援的資料庫類型。無法移轉 MySQL、POINTBASE、Informix® 和 Sybase。
下表顯示了使用的 Java 類型和資料庫直欄類型。如果資料庫表格綱目衍生自此格式,或在 jbosscmp-jdbc.xml 檔中指定了自訂資料類型,則 CMP 可能不工作。在這些情況下,可以使用 Rational Application Developer「EJB 至 RDB 對映精靈」中的「結合發展」設定,來移轉 CMP 對映。
| Java 類型 | Db2 | Oracle | SQLServer |
|---|---|---|---|
| java.lang.Integer/int | INTEGER | INTEGER | INTEGER |
| java.lang.Double/double | DOUBLE PRECISION | DOUBLE PRECISION | DOUBLE PRECISION |
| java.lang.Float/float | FLOAT | FLOAT | FLOAT |
| java.lang.Short/short | INTEGER | INTEGER | SMALLINT |
| java.lang.Long/long | BIGINT | INTEGER | DECIMAL |
| java.math.BigDecimal | DECIMAL | DECIMAL | DECIMAL |
| java.lang.String | VARCHAR | VARCHAR | VARCHAR |
| java.lang.Character/char | CHAR | CHAR | CHAR |
| java.lang.Byte/byte | INTEGER | INTEGER | TINYINT |
| java.lang.Boolean/boolean | INTEGER | INTEGER | INTEGER |
| java.sql.Date | DATE | DATE | DATETIME |
| java.sql.Time | TIME | DATE | DATETIME |
| java.sql.Timestamp | TIMESTAMP | DATE | DATETIME |
| byte[]/java.io.Serializable | VARCHAR FOR BIT DATA | RAW | IMAGE |