Oracle DBMS の BLOB および CLOB DBMS カ ラムのサポー ト
EJB 2 EJB LocalObjects
EJB LocalHome EJB ホーム EJB オブジ ェ ク ト
5 WebLogic Server のコ ン テナ管理によ る永続性サービ ス
5-60 WebLogic エ ン タ ープ ラ イズ JavaBeans プ ログラ マーズガ イ ド
グループ
コ ンテナ管理に よ る永続性では、 グループを使用し て、 エンテ ィ テ ィ Bean の特 定の永続的な属性を指定し ます。 field-group は、 Bean の cmp-field と CMR-field のサブセ ッ ト を表し ます。 Bean 内の関連フ ィ ール ド を、 障害のあ ったグループ にまと めて 1 つのユニ ッ ト と し て メ モ リ 内に入れる こ と ができ ます。 グループを
ク エ リ または関係に関連付け る こ と がで き ます。 それに よ っ て、 ク エ リ を実行す る か、 ま たは関係に従っ た結果 と し て Bean が ロー ド さ れた と き に、 グループ内 の指定フ ィ ール ド のみが ロー ド さ れます。
指定し たグループを持たない ク エ リ と 関係に対し て、 「default」 と い う 特殊なグ ループを使用し ます。 デフ ォル ト では、 default グループには、 Bean のすべての
CMP-field と 、 Bean の永続的な状態に外部キーを追加するすべての CMR-field
が格納 さ れます。
フ ィ ール ド は複数のグループに関連付け ら れている場合があ り ます。 こ の場合、
フ ィ ール ド に対し て getXXX() メ ソ ッ ド を実行する と 、 そのフ ィ ール ド を含む最 初のグループで障害が発生し ます。
フ ィ ール ド グループの指定
フ ィ ール ド グループは、weblogic-rdbms-cmp-jar.xmlフ ァ イ ルで次の よ う に指定し ます。
<weblogic-rdbms-bean>
<ejb-name>XXXBean</ejb-name>
<field-group>
<group-name>medical-data</group-name>
<cmp-field>insurance</cmp-field>
<cmr-field>doctors</cmr-fields>
</field-group>
</weblogic-rdbms-bean>
フ ィ ール ド グループは、 フ ィ ール ド のサブセ ッ ト にア ク セスする必要があ る と き に使用し ま す。
EJB リ ン ク の使用
EJB リ ン クの使用
WebLogic Server では、 EJB 2.0 仕様で定義さ れてい る EJB リ ン ク を完全にサ
ポー ト し ています。 アプ リ ケーシ ョ ン コ ンポーネン ト 内で EJB 参照を宣言し、
こ れを同じ J2EE アプ リ ケーシ ョ ン内で宣言さ れたエン タープ ラ イ ズ Bean に リ ン ク さ せる こ と ができ ま す。
ejb-linkを作成する には、 次の手順に従います。
1. 参照元のアプ リ ケーシ ョ ン コ ンポーネン ト にあ る ejb-ref 要素の任意指定 のデプ ロ イ メ ン ト 記述子要素、 ejb-linkを使っ て EJB への リ ン ク を指定し ま す。
ejb-linkの値は必ず、 参照先 と な る EJB の ejb-name に し ます。 参照先の EJB は、 参照元アプ リ ケーシ ョ ン コ ンポーネン ト と 同じ J2EE アプ リ ケー シ ョ ンの EJB JAR フ ァ イルのどれかに含ま れてい る と 考え ら れま す。
ejb-name は EJB JAR フ ァ イ ル間で必ず し も ユニー ク でな く て も よいため、
その リ ン ク の絶対パス を与え る必要があ る か も し れません。
2. 次の構文を使っ て、 同じ J2EE アプ リ ケーシ ョ ン内の EJB へのパス名を与え ます。
<ejb-link>../products/product.jar#ProductEJB</ejb-link>
こ の参照では参照先の EJB が含まれる EJB JAR フ ァ イ ルのパス名を与え、
「#」 でパス名 と 区別し て参照先 Bean の ejb-nameを追加し ます。 こ のパス 名は、 参照元のアプ リ ケーシ ョ ン コ ンポーネン ト JAR フ ァ イ ルか ら の相対 パスです。
デプ ロ イ メ ン ト 記述子を指定する手順については、6-6 ページの 「EJB デプ ロ イ メ ン ト 記述子の指定 と 編集」 を参照し て く だ さ い。
5 WebLogic Server のコ ン テナ管理によ る永続性サービ ス
5-62 WebLogic エ ン タ ープ ラ イズ JavaBeans プ ログラ マーズガ イ ド
CMP フ ィ ール ドの Java データ型
次の表は、 WebLogic Server で使用 さ れる CMP フ ィ ール ド の Java データ型 と 、 それに対応する標準 SQL データ型の Oracle 拡張を示し ています。
表5-3 CMP フ ィ ールドの Java データ型
CMP フ ィ ール ドの Java の型 Oracle のデー タ型
boolean SMALLINT
byte SMALLINT
char SMALLINT
double NUMBER
float NUMBER
int INTEGER
long NUMBER
short SMALLINT
java.lang.String VARCHAR/VARCHAR2 java.lang.Boolean SMALLINT
java.lang.Byte SMALLINT
java.lang.Character SMALLINT java.lang.Double NUMBER
java.lang.Float NUMBER
java.lang.Integer INTEGER
java.lang.Long NUMBER
java.lang.Short SMALLINT
CMP フ ィ ール ド の Java デー タ 型
SQL CHAR データ型は、 CMP フ ィ ール ド にマ ッ プ さ れるデータベース カ ラ ムに
は使用し ないで く だ さ い。 こ の こ と は、 主キーの一部であ る フ ィ ール ド で特に重 要です。 なぜな ら、 JDBC ド ラ イバに よ っ て返さ れるパデ ィ ン グの空白は、 等し いかど う かの比較を不適切に失敗さ せるか ら です。 SQL CHAR の代わ り に、
SQL VARCHAR データ型を使用し て く だ さ い。
byte[]型の CMP フ ィ ール ド は、equals() メ ソ ッ ド と hashCode() メ ソ ッ ド を 備え る ユーザ定義の主キー ク ラ スで ラ ッ プ さ れていない限 り 主キー と し ては使 用でき ません。 なぜな ら、byte[]ク ラ スには実質的な equals および hashCode が備わっ ていないか ら です。
java.sql.Date DATE
java.sql.Time DATE
java.sql.Timestamp DATE java.math.BigDecimal NUMBER
byte[] RAW、LONG RAW
serializable RAW、LONG RAW
CMP フ ィ ールドの Java の型 Oracle のデータ型
5 WebLogic Server のコ ン テナ管理によ る永続性サービ ス
5-64 WebLogic エ ン タ ープ ラ イズ JavaBeans プ ログラ マーズガ イ ド