Używaj rozszerzeń produktu WebSphere do definiowania odwzorowań trwałości zarządzanej przez kontener

Plik weblogic-cmp-rdbms-jar.xml zawiera odwzorowania atrybutów komponentów EJB na kolumny bazy danych używane przez funkcje trwałości zarządzanej przez kontener (Container-Managed Persistence – CMP) i relacji zarządzanych przez kontener (Container-Managed Relationships – CMR).

Reguła wykrywa odwzorowania pól trwałości CMP w pliku weblogic-cmp-rdbms-jar.xml. Szybka poprawka skanera kodu źródłowego próbuje wygenerować odwzorowania wymagane przez serwer WebSphere(R) Application Server, aby mogła działać funkcja trwałości zarządzanej przez kontener. Odwzorowania są zależne od typu i schematu bazy danych. Dlatego działanie szybkiej poprawki polega na odgadnięciu poprawnego schematu bazy danych.

Szybka poprawka (dostępna w skanerze kodu źródłowego):

Dostawcę bazy danych można skonfigurować na panelu właściwości reguły. Jeśli jest ustawiona opcja Automatyczne wykrywanie, ustawienie database-type w pliku weblogic-cmp-rdbms-jar.xml określa typ używanej bazy danych. Jeśli nie podano żadnej wartości, zostanie użyta baza danych Oracle. Obsługiwane są tylko następujące typy bazy danych: DB2(R), Oracle, SQLServer i SQLServer2000. Baz danych MySQL, POINTBASE, Informix(R) i Sybase nie można poddać migracji.

W poniższej tabeli przedstawiono odwzorowania typów Java na typy kolumn używanej bazy danych. Jeśli schemat tabel bazy danych odbiega od tego formatu, funkcja trwałości zarządzanej przez kontener może nie działać. W takich przypadkach do migracji odwzorowań CMP należy użyć ustawienia Zbieżne w kreatorze odwzorowań EJB na RDB produktu Rational Application Developer.

Typ JavaDB2OracleSQLServer
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

Optymistyczne blokowanie

Podczas migracji ustawienia optymistycznego blokowania są migrowane, jeśli jest to możliwe. Jeśli element <verify-columns> w pliku weblogic-cmp-rdbms-jar.xml ma wartość Timestamp lub Version, optymistyczne blokowanie zostanie włączone dla kolumny podanej w elemencie <optimistic-column>. Jest to możliwe tylko wtedy, gdy kolumna jest odwzorowana na pole trwałości zarządzanej przez kontener (co jest opcjonalne w przypadku serwera WebLogic). Jeśli kolumna nie jest odwzorowana, należy ręcznie dodać nowe pole do komponentu EJB i odwzorować je na kolumnę w pliku weblogic-cmp-rdbms-jar.xml.

Wartości Read i Modified elementu <verify-columns> nie są obsługiwane na potrzeby migracji.