![]() |
![]() |
|
|
| |
weblogic-cmp-rdbms-jar.xml 文書型定義
この章では、weblogic 固有の XML 文書型定義(DTD)ファイル、weblogic-cmp-rdbms-jar.xml ファイルの EJB 5.1 および EJB 6.0 デプロイメント記述子要素について説明します。これらの定義を使用して、EJB デプロイメントを構成する WebLogic 固有の weblogic-cmp-rdbms-jar.xml ファイルを作成します。
以下の節では、DOCTYPE ヘッダ情報を含めて、2 つのバージョンの WebLogic 固有の XML をリファレンス形式で詳細にまとめてあります。これらのデプロイメント記述子要素を使用して、コンテナ管理による永続性(CMP)を指定します。
EJB デプロイメント記述子
EJB デプロイメント記述子は、エンタープライズ Bean の構造およびアセンブリ情報を提供します。この情報を指定するには、3 つの EJB XML DTD ファイルのデプロイメント記述子に値を指定します。ファイルは次のとおりです。
この 3 つの XML ファイルを EJB および他のクラスと一緒にデプロイ可能なコンポーネント、通常は ejb.jar という JAR ファイルにパッケージ化します。
ejb-jar.xml ファイルは、Sun Microsystems の ejb.jar.xml ファイルのデプロイメント記述子に基づいています。その他の 2 つの XML ファイルは weblogic 固有のファイルで、weblogic-ejb-jar.xml と weblogic-cmp-rdbms-jar.xml のデプロイメント記述子に基づいています。
XML デプロイメント ファイルの編集、作成時に、各デプロイメント ファイルに対して正しい DOCTYPE ヘッダを指定することが重要です。特に、DOCTYPE ヘッダ内部に不正な PUBLIC 要素を使用すると、原因究明が困難なパーサ エラーになることがあります。各 XML デプロイメント ファイルで適切な PUBLIC 要素は、次のとおりです。
WebLogic Server 固有の weblogic-cmp-rdbms-jar.xml ファイルの PUBLIC 要素には、次のようにテキストを指定する必要があります。
Sun Microsystems 固有の ejb-jar ファイルの PUBLIC 要素には、次のようにテキストを指定する必要があります。
たとえば、weblogic-cmp-rdbms-jar.xml ファイルの DOCTYPE ヘッダは次のようになります。
<!DOCTYPE weblogic-cmp-rdbms-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB RDBMS20 Persistence//EN' 'http://www.bea.com/servers/wls600/dtd/weblogic-rdbms20-persistence-600.dtd '>
XML の解析ユーティリティ(ejbc など)でヘッダ情報が不正な XML ファイルを解析すると、次のようなエラー メッセージが表示されることがあります。
SAXException: This document may not have the identifier 'identifier_name'
identifier_name には通常、PUBLIC 要素内の不正な文字列が表示されます。
検証用 DTD(Document Type Definitions : 文書型定義)
XML ファイルの内容および要素の配置は、使用する各ファイルの文書型定義(DTD)に準拠している必要があります。WebLogic Server ユーティリティでは、XML デプロイメント ファイルの DOCTYPE ヘッダ内に埋め込まれた DTD は無視され、代わりにサーバと共にインストールされた DTD の場所が使用されます。ただし、DOCTYPE ヘッダ情報には、パーサ エラーを避けるために有効な URL 構文を指定する必要があります。
注意: ほとんどのブラウザでは、.dtd ファイルの内容は表示されません。DTD ファイルの内容をブラウザで見るには、リンクをテキスト ファイルとして保存し、テキスト エディタで開いて表示します。
weblogic-cmp-rdbms-jar.xml
以下のリンクでは、WebLogic Server で使用される weblogic-cmp-rdbms-jar.xml デプロイメント ファイル用のパブリック DTD の場所が示されています。
http://www.bea.com/servers/wls600/dtd/weblogic-rdbms20-
persistence-600.dtd には、エンティティ EJB のコンテナ管理による永続性プロパティを定義する DTD が含まれています。この DTD は WebLogic Server バージョン 5.1 から変更されていますが、WebLogic Server RDBMS ベースの永続性を使用するエンティティ EJB に対して weblogic-cmp-rdbms-jar.xml ファイルを指定する必要があります。
既存の DTD ファイルは次の場所にあります。
http://www.bea.com/servers/wls600/dtd/weblogic-rdbms-
persistence-600.dtd
weblogic-rdbms-persistence.dtd には、エンティティ EJB のコンテナ管理による永続性プロパティを定義する DTD が含まれています。この DTD は、WebLogic Server 永続性サービスの使用に必要な weblogic-rdbms-persistence.xml ファイルの作成に使用されます。サードパーティの永続性ベンダは、この DTD に従った XML デプロイメント ファイルを作成することもできます。この DTD ファイルは、http://www.bea.com/servers/wls510/dtd/weblogic-rdbms-persistence.dtd にあります。
ejb-jar.xml
以下のリンクでは、WebLogic Server で使用される ejb-jar.xml デプロイメント ファイル用のパブリック DTD の場所が示されています。
http://www.java.sun.com/dtd/ejb-jar_2_0.dtd には、すべての EJB で必要な標準 ejb-jar.xml デプロイメント ファイル用の DTD が含まれています。この DTD は、JavaSoft EJB 2.0 仕様の一部として保持されています。ejb-jar.dtd で使用される要素の詳細については JavaSoft 仕様を参照してください。
注意: ejb-jar.xml デプロイメント記述子の説明については、該当する JavaSoft EJB 仕様を参照してください。
6.0 の weblogic-cmp-rdbms-jar.xml デプロイメント記述子ファイルの構造
weblogic-cmp-rdbms-jar.xml は、WebLogic Server の RDBMS ベースの永続性サービスを使用するエンティティ EJB のデプロイメント記述子を定義します。EJB 2.0 コンテナでは、WebLogic Server バージョン 5.1 で提供されたものとは異なるバージョンの weblogic-cmp-rdbms-jar.xml を使用します。詳細については、エンティティ EJB のロック サービスを参照してください。
WebLogic Server バージョン 6.0 にデプロイする旧バージョンの EJB 1.1 用 weblogic-cmp-rdbms-jar.xml の DTDも使用できます。ただし、CMP 2.0 の新機能を使用する場合は、下記の新しい DTD を使用する必要があります。
WebLogic Server 6.0 の weblogic-cmp-rdbms-jar.xml の最上位要素は、weblogic-rdbms-jar スタンザで構成されます。
description
weblogic-version
weblogic-rdbms-jar
weblogic-rdbms-bean
ejb-name
data-source-name
table-name
field-name
field-map
field-group
weblogic-query
delay-database-insert-until
automatic-key-generation
weblogic-rdbms-relation
relation-name
table-name
weblogic-relationship-role
6.0 の weblogic-cmp-rdbms-jar.xml デプロイメント記述子要素
automatic-key-generation
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
省略可能。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
automatic-key-generation 要素は、シーケンス/キー生成機能の使い方を指定します。
例
XML スタンザには、以下の要素を指定できます。
<automatic-key-generation>
<generator-type>ORACLE</generator-type>
<generator-name>test_sequence</generator-name>
<key-cache-size>10</key-cache-size>
</automatic-key-generation>
<automatic-key-generation>
<generator-type>SQL-SERVER</generator-type>
</automatic-key-generation>
<automatic-key-generation>
<generator-type>NAMED_SEQUENCE_TABLE</generator-type>
<generator-name>MY_SEQUENCE_TABLE_NAME</generator-name>
<key-cache-size>100</key-cache-size>
</automatic-key-generation>
cmp-field
機能
この名前は、Bean インスタンスのマップされたフィールドを指定します。Bean インスタンスのフィールドには、データベースから取得した情報が指定されている必要があります。
例
field-mapを参照してください。
cmp-field
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
cmr-field で参照されるフィールドが、対応する cmr-field エントリを ejb-jar.xml に持っていること。 |
親要素 : |
weblogic-rdbms-relation |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
cmr-field 要素は cmr-field 名を指定します。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-rdbms-jar>
<weblogic-rdbms-relation>
<field-group>employee</field-group>
<cmp-field>employee stock purchases</cmp-field>
<cmr-field>stock options</cmr-field>
</weblogic-rdbms-relation>
</weblogic-rdbms-jar>
column-map
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
foreign-key-column がリモート Bean を参照する場合は、 key-column 要素を指定しないこと。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
この要素は、データベース内のテーブルの外部キー カラムと対応する主キーのマッビンプを表します。2 つのカラムは同じテーブルにある場合も別のテーブルにある場合もあります。カラムが属しているテーブルは、column-map 要素がデプロイメント記述子に表示されるコンテキストに対しては暗黙的です。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-rdbms-jar>
<weblogic-rdbms-bean >
<column-map
<foreign-key-column>account-id</foreign-key-column>
<key-column>id</key-column>
</column-map>
</weblogic-rdbms-bean>
</weblogic-rdbms-jar>
create-default-dbms-tables
機能
create-default-dbms-table 要素は、デプロイメント ファイルおよび Bean クラスの記述に基づいてデフォルト テーブルを自動作成する機能を有効化/無効化します。False に設定すると、この機能は無効化されるので、テーブルは自動的に作成されません。True に設定すると、この機能は有効化されるので、テーブルは自動的に作成されます。TABLE CREATION が失敗した場合、Table Not Found エラーが送出されるので、テーブルを手動で作成しなければなりません。
例
次の例では、create-default-dbms-tables 要素を指定します。
<create-default-dbms-tables>True</create-default-dbms-tables>
data-source-name
指定できる値 : |
この Bean に対するすべてのデータベース接続で使用するデータ ソースの有効な名前 |
デフォルト値 : |
なし |
要件 : |
データベース接続の標準 WebLogic Server JDBC データ ソースとして定義すること。詳細については、『WebLogic JDBC プログラミング ガイド』を参照。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
この Bean のすべてのデータベース接続に使用する JDBC データ ソース名を指定する data-source-name です。
例
table-nameを参照してください。
db-cascade-delete
指定できる値 : |
|
デフォルト値 : |
なし |
要件 : |
Oracle データベースに対してのみサポート。1 対 1 または 1 対多関係についてのみ指定可能。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
db-cascade-delete 要素は、データベース カスケード機能を有効にするかどうかを指定します。この要素を指定しなかった場合、WebLogic Server では、データベース カスケード削除が指定されていないものと見なされます。
例
カスケード削除メソッドを参照してください。
dbms-column
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
大文字/小文字を区別しないデータベースの場合でも、dbms-column では大文字/小文字を区別する。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
フィールドがマップされるデータベース カラムの名前です。
例
field-mapを参照してください。
dbms-column-type
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
Oracle データベースでのみ使用可能。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
dbms-column-type 要素は、現在のフィールドを Oracle データベースの Blob または Clob、あるいは Sybase データベースの LongString にマップします。この要素は、次のいずれかです。
例
<field-map>
<cmp-field>photo</cmp-field>
<dbms-column>PICTURE</dbms-column>
<dbms_column-type>OracleBlob</dbms-column-type>
</field-map>
delay-database-insert-until
機能
delay-database-insert-until 要素は、RDBMS CMP を使用する新しい Bean をデータベースに挿入する正確な時間を指定します。
ejbPostCreate メソッドが Bean の永続フィールドを変更するまで、データベースの挿入を遅らせることをお勧めします。これにより、不要な保存操作を行わずに済むので、パフォーマンスが向上します。
最大限の柔軟性を実現するには、関連 Bean を ejbPostCreate メソッドで作成することは避ける必要があります。データベースの制約によって関連 Bean が未作成の Bean を参照できない場合、データベースの挿入を遅らせることができなくなる可能性があります。
例
次の例では、delay-database-insert-until 要素を指定します。
<delay-database-insert-until>ejbPostCreate</delay-database-insert-until>
ejb-name
指定できる値 : |
EJB の有効な名前 |
デフォルト値 : |
なし |
要件 : |
ejb-jar.xml で定義した CMP エンティティ Bean の ejb-name に一致していること。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
ejb-cmp-rdbms.xml で定義した EJB を指定する名前です。この名前は、ejb-jar.xml で定義した CMP エンティティ Bean の ejb-name に一致している必要があります。
例
table-nameを参照してください。
enable-tuned-updates
注意: このデプロイメント記述子は、EJB 1.1 に対してのみ適用されます。
指定できる値 : |
True/False |
デフォルト値 : |
True |
要件 : |
|
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
enable-tuned-updates 要素は、ejbStore が呼び出された場合に、EJB コンテナがコンテナ管理フィールドの変更の有無を自動的に判定し、変更されたフィールドだけをデータベースに書き込むように指定します。
例
次の例では、enable-tuned-updates 要素の指定方法を示します。
<enable-tuned-updates>True</enable-tuned-updates>
field-group
機能
field-group 要素は、Bean の cmp-field と cmr-field のサブセットを表します。Bean 内の関連フィールドを、障害のあったグループに 1 つのユニットとしてまとめることができます。グループをファインダまたは関係に関連付けることができます。それによって、ファインダを実行するか、または関係に従った結果として Bean がロードされたときに、グループ内の指定フィールドのみがロードされます。
フィールドは複数のグループに関連付けられている場合があります。この場合、フィールドに対して getXXX メソッドを実行すると、そのフィールドを含む最初のグループで障害が発生します。
例
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>
field-map
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
データベースのカラムにマップされたフィールドが、Bean の CMP フィールドに対応していること。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
データベースの特定のカラム用にマップされたフィールド名です。Bean インスタンスの CMP フィールドに対応しています。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-rdbms-jar>
<weblogic-rdbms-bean >
<field-map>
<cmp-field>accountId</cmp-field>
<dbms-column>id</dbms-column>
</field-map>
<field-map>
<cmp-field>balance</cmp-field>
<dbms-column>bal</dbms-column>
</field-map>
<field-map>
<cmp-field>accountType</cmp-field>
<dbms-column>type</dbms-column>
</field-map>
</weblogic-rdbms-bean>
</weblogic-rdbms-jar>
foreign-key-column
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
外部キーのカラムに対応していること。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
foreign-key-column 要素は、データベース内の外部キーのカラムを表します。
例
column-mapを参照してください。
generator-name
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
省略可能。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
generator-name 要素は、ジェネレータの名前を指定する場合に使用します。
次に例を示します。
例
automatic-key-generationを参照してください。
generator-type
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
省略可能。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
generator-type 要素は、使用するキー生成方法を指定します。オプションは以下のとおりです。
例
automatic-key-generationを参照してください。
group-name
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
なし |
親要素 : |
weblogic-rdbms-relation |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
group-name 要素はフィールド グループ名を指定します。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-rdbms-jar>
<weblogic-rdbms-relation>
<field-group>employee</field-group>
<cmp-field>employee stock purchases</cmp-field>
<cmr-field>stock options</cmr-field>
<group-name>financial data</group-name>
</weblogic-rdbms-relation>
</weblogic-rdbms-jar>
include-updates
指定できる値 : |
True | False |
デフォルト値 : |
False |
要件 : |
デフォルトは False で、この設定は最大限のパフォーマンスを実現する。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
include-updates element は、現在のトランザクション中の更新を必ずクエリの結果に反映するように指定します。この要素を True に設定した場合、コンテナは現在のトランザクションによる変更をすべてディスクにフラッシュしてからクエリを実行します。
例
XML スタンザには、以下の要素を指定できます。
<include-updates>False</include_updates>
key-cache-size
指定できる値 : |
なし |
デフォルト値 : |
1 |
要件 : |
省略可能。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
key-cache-size 要素は、自動主キー生成機能で利用可能な主キー キャッシュのサイズをオプションとして指定します。
例
automatic-key-generationを参照してください。
key-column
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
主キーのカラムに対応していること。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
key-column 要素は、データベース内の主キーのカラムを表します。
例
column-mapを参照してください。
max-elements
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
なし |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
max-elements は多値クエリによって返される要素の最大数を指定します。この要素は、JDBC の maxRows 機能とほぼ同じです。
例
XML スタンザには、以下の要素を指定できます。
<max-elements>100</max-elements>
<!ELEMENT max-element (PCDATA)>
method-name
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
「*」文字はワイルドカードとして使用できない。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
method-name 要素は、ファインダ メソッドまたは ejbSelect メソッドの名前を指定します。
例
weblogic-queryを参照してください。
method-param
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
なし |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
method-param 要素には、Java タイプのメソッド パラメータの完全修飾名が含まれます。
例
XML スタンザには、以下の要素を指定できます。
<method-param>java.lang.String</method-param>
method-params
指定できる値 : |
有効な名前のリスト |
デフォルト値 : |
なし |
要件 : |
なし |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
method-params 要素には、Java タイプのメソッド パラメータの完全修飾名の順序付きリストが含まれます。
例
weblogic-queryを参照してください。
query-method
機能
query-method 要素は、weblogic-query と関連付けるメソッドを指定します。ejb-jar.xml 記述子と同じ形式を使用します。
例
weblogic-queryを参照してください。
relation-name
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
関連する ejb-jar.xml 記述子ファイルで定義した ejb-relation の ejb-relation-name に一致していること。 |
親要素 : |
weblogic-rdbms-relation |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
relation-name 要素は関連名を指定します。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-rdbms-jar>
<weblogic-rdbms-relation>
<relation-name>stocks-holders</relation-name>
<table-name>stocks</table-name>
</weblogic-rdbms-relation>
</weblogic-rdbms-jar>
relationship-role-name
機能
relationship-role-name 要素は関係名を指定します。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-rdbms-jar>
<weblogic-rdbms-relation>
<weblogic-relationship-role>stockholder</weblogic- relationship-role>
<relationship-role-name>stockholders</relationship- role-name>
</weblogic-rdbms-relation>
</weblogic-rdbms-jar>
sql-select-distinct
機能
sql-select-distinct 要素は、生成される SQL SELECT 文に DISTINCT 修飾子が含まれるかどうかを指定します。DISTINCT 修飾子を使用すると、データベースから一意の行が返されます。
例
この要素を含む XML の例を示します。
<sql-select-distinct>True</sql-select-distinct>
table-name
指定できる値 : |
データベース内にあるソース テーブルの有効な完全修飾 SQL 名 |
デフォルト値 : |
なし |
要件 : |
table-name を必ず設定すること。 |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
テーブルの完全修飾 SQL 名です。この Bean の data-source 用に定義したユーザには、指定したテーブルの読み取りおよび書き込み特権が必要ですが、スキーマ変更特権は必要ありません。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-rdbms.jar>
<weblogic-rdbms-bean >
<ejb-name>containerManaged</ejb-name>
<data-source-name>examples-dataSource-demoPool</data-source-name>
<table-name>ejbAccounts</table-name>
</weblogic-rdbms-bean>
</weblogic-rdbms-jar>
weblogic-ql
指定できる値 : |
なし |
デフォルト値 : |
なし |
要件 : |
なし |
親要素 : |
weblogic-rdbms-bean |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
weblogic-ql 要素は、EJB-QL に対する WebLogic 固有の拡張機能を含むクエリを指定します。ejb-jar.xml デプロイメント記述子では、EJB-QL 言語の標準機能だけを使用するクエリを指定しなければなりません。
例
weblogic-queryを参照してください。
weblogic-query
機能
weblogic-query 要素を使用すると、必要に応じて、WebLogic 固有の属性をクエリに関連付けることができます。たとえば、WebLogic 固有の EJB-QL に対する拡張機能を含むクエリを指定するために使用できます。EJB-QL に対する WebLogic の拡張機能を使用しないクエリは、ejb-jar.xml デプロイメント記述子で指定する必要があります。
また、クエリによってあらかじめキャッシュにロードしておく必要があるエンティティ Bean をクエリで取得する場合は、weblogic-query 要素を使用して、field-group をクエリに関連付けます。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-query>
<query-method>
<method-name>findBigAccounts</method-name>
<method-params>
<method-param>double</method-param>
</method-params>
<query-method>
<weblogic-ql>WHERE BALANCE>10000 ORDERBY NAME</weblogic-ql>
</weblogic-query>
weblogic-relationship-role
指定できる値 : |
有効な名前 |
デフォルト値 : |
なし |
要件 : |
ロールのテーブルへのマッピングを、関連する weblogic-rdbms-bean および ejb-relation 要素で指定すること。 |
親要素 : |
weblogic-rdbms-relation |
デプロイメント ファイル : |
weblogic-cmp-rdbms-jar.xml |
機能
weblogic-relationship-role 要素は、外部キーから主キーへのマッピングを表すのに使用します。1 つのみのマッピングは、関係がローカルの場合、1 対 1 の関係で指定します。ただし、多対多の関係では、2 つのマッピングを指定する必要があります。
キーが複数の場合、複数カラムのマッピングは単独のロールに対して指定します。ロールが group-name を指定しているだけの場合、column-map は指定されません。
例
XML スタンザには、以下の要素を指定できます。
<weblogic-rdbms-jar>
<weblogic-rdbms-relation>
<relation-name>stocks-holders</relation-name>
<table-name>stocks</table-name>
<weblogic-relationship-role>stockholder</weblogic- relationship-role>
</weblogic-rdbms-relation>
</weblogic-rdbms-jar>
5.1 の weblogic-cmp-rdbms-jar.xml デプロイメント記述子ファイルの構造
weblogic-cmp-rdbms-jar.xml では、WebLogic Server RDBMS ベースの永続性サービスを使用するエンティティ EJB のデプロイメント要素を定義します。詳細については、エンティティ EJB のロック サービスを参照してください。
WebLogic Server 5.1 の weblogic-cmp-rdbms-jar.xml の最上位要素は、weblogic-enterprise-bean スタンザで構成されます。
description
weblogic-version
<weblogic-enterprise-bean>
<pool-name>finance_pool</pool-name>
<schema-name>FINANCE_APP</schema-name>
<table-name>ACCOUNT</table-name>
<attribute-map>
<object-link>
<bean-field>accountID</bean-field>
<dbms-column>ACCOUNT_NUMBER</dbms-column>
</object-link>
<object-link>
<bean-field>balance</bean-field>
<dbms-column>BALANCE</dbms-column>
</object-link>
</attribute-map>
<finder-list>
<finder>
<method-name>findBigAccounts</method-name>
<method-params>
<method-param>double</method-param>
</method-params>
<finder-query><![CDATA[(> balance $0)]]></finder-query>
<finder-expression>. . .</finder-expression>
</finder>
</finder-list>
</weblogic-enterprise-bean>
5.1 の weblogic-cmp-rdbms-jar.xml デプロイメント記述子要素
RDBMS 定義要素
この節では RDBMS 定義要素について説明します。
pool-name
pool-name では、EJB のデータベース接続に使用する WebLogic Server 接続プールの名前を指定します。詳細については、『JDBC プログラミング ガイド』を参照してください。
schema-name
schema-name では、データベースに置かれるソース テーブルのスキーマを指定します。この要素は、EJB の接続プールで定義されたユーザに対してデフォルト スキーマではないスキーマを使用する場合にのみ必須です。
注意: 多くの SQL 実装では大文字小文字が無視されますが、このフィールドは大文字小文字が区別されます。
table-name
table-name では、データベース内のソース テーブルを指定します。この要素はすべての場合に必須です。
注意: EJB の接続プールで定義されたユーザには、指定されたテーブルに対する読み書き特権が必要です。ただし、スキーマ変更権限は必ずしも必要ありません。多くの SQL 実装では大文字小文字が無視されますが、このフィールドは大文字小文字が区別されます。
EJB フィールド マッピング要素
この節では EJB フォールド マッピング要素について説明します。
attribute-map
attribute-map スタンザでは、EJB インスタンスの単一フィールドがデータベース テーブル内の特定のカラムにリンクされます。attribute-map には、WebLogic Server RDBMS ベースの永続性を使用する EJB のフィールドごとに 1 つのエントリが必要です。
object-link
各 attribute-map エントリは、データベース内のカラムと EJB インスタンス内のフィールドとのリンクを表す object-link スタンザから構成されます。
bean-field
bean-field では、データベースからの移行が必要な EJB インスタンスのフィールドを指定します。この要素では大文字小文字が区別されます。この要素は、Bean インスタンスのフィールド名に正確に一致している必要があります。
また、このタグで参照されるフィールドは、Bean の ejb-jar.xml ファイル内に定義されている cmp-field 要素も持っている必要があります。
dbms-column
dbms-column では、EJB フィールドがマップされるデータベース カラムを指定します。多くのデータベースでは大文字小文字が無視されますが、このフィールドでは大文字小文字が区別されます。
注意: WebLogic Server では、引用符で囲まれた RDBMS キーワードは dbms-column のエントリとしてはサポートされていません。たとえば、基になるデータストアで「create」や「select」が予約語になっている場合、それらをカラム名にして属性マップを作成することができません。
ファインダ要素
この節ではファインダ要素について説明します。
finder-list
finder-list スタンザでは、Bean の集合を見つけるために生成されるすべてのファインダの集合を定義します。詳細については、EJB 1.1 CMP の RDBMS 永続性用の記述を参照してください。
findByPrimarykey の場合を除いて、finder-list には、ホーム インタフェース内に定義されているファインダ メソッドにごとに 1 つのエントリが必要です。findByPrimaryKey の場合は、エントリを指定しなくても、コンパイル時に finder-list が生成されます。
注意: findByPrimaryKey に対してエントリを指定すると、WebLogic Server では、正当性が検証されずにそのエントリが使用されます。ほとんどの場合では、findByPrimaryKey に対するエントリを定義せずに、デフォルトで生成されるメソッドを受け入れることをお勧めします。
finder
finder スタンザでは、ホーム インタフェース内に定義されるファインダ メソッドを記述します。finder スタンザに含まれる要素によって、WebLogic Server では、ホーム インタフェース内に記述されているメソッドが識別され、必要なデータベース操作を実行できるようになります。
method-name
method-name では、ホーム インタフェース内のファインダ メソッドの名前を定義します。このタグには、メソッドの正確な名前を指定する必要があります。
method-params
method-params スタンザでは、method-name で指定されるファインダ メソッドに対するパラメータのリストを定義します。
注意: WebLogic Server では、このリストは EJB のホーム インタフェース内のファインダ メソッドのパラメータ タイプと比較されます。パラメータ リストの順序とパラメータ タイプは、ホーム インタフェースで定義されている順序とパラメータ タイプに正確に一致している必要があります。
method-param
method-param では、パラメータ タイプの完全修飾名を定義します。このタイプ名は java.lang.Class オブジェクトで評価され、その結果のオブジェクトは EJB のファインダ メソッド内の各パラメータに正確に一致している必要があります。
「double」や「int」のようなプリミティブ名を使用してプリミティブ パラメータを指定できます。method-param 要素内に非プリミティブなタイプを使用する場合には、完全修飾名を指定する必要があります。たとえば、Timestamp ではなく java.sql.Timestamp を使用します。完全修飾名を使用しないと、デプロイメント ユニットのコンパイル時に ejbc でエラー メッセージが生成されます。
finder-query
finder-query では、このファインダ用にデータベースから値を取り出す場合に使用する WebLogic クエリ言語(WLQL)文字列を指定します。詳細については、EJB 1.1 CMP 用の WebLogic クエリ言語(WLQL)の使用を参照してください。
注意: finder-query 値のテキストは、常に、XML CDATA 属性を使用して定義してください。CDATA を使用すると、WLQL 文字列中に特殊文字が入っていても、ファインダをコンパイルしたときにエラーが発生しないようになります。
finder-expression
finder-expression では、このファインダ用のデータベース クエリ中で変数として使用される Java 言語の式を指定します。
注意: WebLogic Server EJB コンテナの将来のバージョンでは、EJB QL クエリ言語が使用される予定です(このクエリ言語は EJB 2.0 仕様では必須です)。EJB QL では、埋め込まれた Java 式はサポートされていません。そのため、将来の EJB コンテナに簡単にアップグレードできるよう、WLQL でも Java 式を埋め込まずにエンティティ EJB ファインダを作成してください。
![]() |
![]() |