Le fichier jbosscmp-jdbc.xml contient des mappages entre des attributs d'EJB et des colonnes de base de données utilisés par la fonction de persistance gérée par conteneur (Container Managed Persistence / CMP) et les relations gérées par conteneur (Container-Managed Relationships / CMR).
La règle détecte les mappages de zone CMP présents dans le fichier jbosscmp-jdbc.xml. Le correctif automatisé tentera de générer les mappages nécessaires à WebSphere(R ) Application Server pour que l'application Container-Managed Persistence fonctionne. Les mappages sont sensibles au schéma et au type de base de données. Le correctif automatisé s'efforcera de choisir un schéma correct pour la base de données.
Vous pouvez configurer le fournisseur de base de données dans le panneau des propriétés de la règle. Si sa valeur est Auto detect, le paramètre database-type contenu dans le fichier jbosscmp-jdbc.xml détermine le type de base de données utilisé. Si aucune valeur n'est spécifiée, le type choisi est DB2. Les types de base de données pris en charge sont DB2(R), Oracle, SQLServer, et SQLServer2000. La migration est impossible pour MySQL, POINTBASE, Informix(R) et Sybase.
Le tableau suivant indique les correspondances utilisées entre le type Java et le type de colonne de base de données. Si votre schéma de table de base de données ne respecte pas ce format, ou que des types de données personnalisés sont spécifiés dans le fichier jbosscmp-jdbc.xml, la persistance CMP peut ne pas fonctionner. Dans ce cas, utilisez le paramètre Meet-In-The-Middle de l'assistant de mappage EJB/SGBDR (EJB to RDB Mapping Wizard) de Rational Application Developer pour migrer les mappages CMP.
| Type 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 |