jbosscmp-jdbc.xml 文件包含从 EJB 属性至由 Container-Managed Persistence (CMP) 和 Container-Managed Relationships (CMR) 使用的数据库列的映射。
该规则检测 jbosscmp-jdbc.xml 文件中的 CMP 字段映射。 自动修复程序将尝试生成 WebSphere(R ) 所需的映射。应用服务器 Container-Managed Persistence 运行所需的映射。 这些映射对数据库类型和模式敏感。 自动修复程序将根据最佳猜测为数据库选择正确的模式。
可在该规则的属性面板中配置数据库供应商。 如果设置为自动检测,那么 jbosscmp-jdbc.xml 文件中的数据库类型设置会确定所使用数据库的类型。如果未指定任何数据库类型,那么会使用 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 |