使用 WebSphere 扩展来定义 CMP 映射

weblogic-cmp-rdbms-jar.xml 文件包含从 EJB 属性至由 Container-Managed Persistence (CMP) 和 Container-Managed Relationships (CMR) 使用的数据库列的映射。

此规则会在 weblogic-cmp-rdbms-jar.xml 文件中检测 CMP 字段映射。 当提供自动修复时,它会尝试生成 WebSphere(R ) 所需的映射。应用服务器 容器管理持久性所需的映射。 这些映射对数据库类型和模式敏感。 因此,自动修复程序将尽力为数据库选择正确的模式。

解决方案

可在该规则的属性面板中配置数据库供应商。 如果设置为自动检测,那么 weblogic-cmp-rdbms-jar.xml 文件中的数据库类型设置会确定所使用数据库的类型。 如果未指定任何数据库类型,那么会使用 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

乐观锁定

在迁移期间,如果可能,乐观锁定设置会被迁移。 在以下情况下,将对 <optimistic-column> 下面指定的列启用乐观锁定:<verify-columns> 在 weblogic-cmp-rdbms-jar.xml 文件中设置为 TimestampVersion。 仅当列映射至 CMP 字段(在 WebLogic 中,CMP 字段为可选)时,才能执行此操作。 如果列未映射,那么新字段必须以手动方式添加至企业 Bean 并且必须映射至 weblogic-cmp-rdbms-jar.xml 文件中的某列。

对于迁移,“已读取”或“已修改”的 <verify-columns> 值不受支持。