Файл weblogic-cmp-rdbms-jar.xml содержит связи между атрибутами EJB и столбцами базы данных, которые используются технологиями хранения, управляемого контейнером (CMP) и взаимосвязей, управляемых контейнером (CMR).
Это правило находит связи с полями CMP в файле weblogic-cmp-rdbms-jar.xml. Когда автоматическое исправление будет предоставлено, оно попытается сгенерировать сопоставления, необходимые для WebSphere(R ) Сервер приложений для container Managed Persistence для работы. Связи зависят от типа и схемы базы данных. Поэтому автоматическое исправление будет пытаться выбрать правильную схему для базы данных по принципу наилучшей догадки.
Поставщика базы данных можно задать на панели свойств правила. Если выбрано значение Определять автоматически, применяемый тип базы данных определяется по значению параметра database-type в файле weblogic-cmp-rdbms-jar.xml. Если оно не задано, используется значение Oracle. Поддерживаются только базы данных типа DB2(R), Oracle, SQLServer и SQLServer2000. Миграция баз данных MySQL, POINTBASE, Informix(R) и Sybase не поддерживается.
В следующей таблице указан тип Java, используемый для типа столбца базы данных. Если применяемая схема таблиц базы данных не соответствует этому формату, CMP может не работать. В таком случае используйте значение Двунаправленный в мастере преобразования EJB в RDB инструмента Rational Application Developer для миграции связей 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 |
Во время миграции по возможности выполняется миграция параметров оптимистической блокировки. Если в элементе <verify-columns> из файла weblogic-cmp-rdbms-jar.xml задано значение Timestamp или Version, оптимистическая блокировка активируется для столбца, заданного в <optimistic-column>. Это делается только в том случае, если столбец связан с полем CMP, что в WebLogic является необязательным. Если столбец не связан с полем, то в EJB необходимо вручную добавить новое поле и связать его со столбцом в файле weblogic-cmp-rdbms-jar.xml.
Миграция значений Read и Modified в элементе <verify-columns> не поддерживается.