ネストした表マッピングは、NestedTableMapping
クラスのインスタンスです。このマッピングは、親クラス内の属性に関連付けられます。ネストした表マッピングには、次の要素が必要です。
setAttributeName()
メッセージを送信して設定されます。 setFieldName()
メッセージを送信して設定されます。 setStructureName()
メッセージを送信して設定します。直接ではなくユーザー定義メソッドによって属性にアクセスする場合は、オプションのsetGetMethodName( )
およびsetSetMethodName( )
メッセージを使用してください。詳細は、「直接アクセスとメソッド・アクセスの指定」を参照してください。
表8-5に、すべてのネストした表マッピング・プロパティのサマリーを示します。
例8-5 ネストした表
次に、Insuranceソース・クラスのネストした表マッピングを作成し、ディスクリプタに登録するコードの例を示します。
// Create a new mapping and register it with the source descriptor.
NestedTableMapping policiesMapping = new NestedTableMapping();
policiesMapping.setAttributeName("policies");
policiesMapping.setGetMethodName("getPolicies");
policiesMapping.setSetMethodName("setPolicies");
policiesMapping.setReferenceClass(Policy.class);
policiesMapping.dontUseIndirection();
policiesMapping.setStructureName("POLICIES_TYPE");
policiesMapping.setFieldName("POLICIES");
policiesMapping.privateOwnedRelationship();
policiesMapping.setSelectionSQLString("select p.* from policyHolders ph, table(ph.policies) t, policies p where ph.ssn=#SSN and ref(p) = value(t)");
descriptor.addMapping(policiesMapping);
次の表に、すべてのネストした表マッピング・プロパティのサマリーを示します。「メソッド名」列で引数は太字で示されていますがメソッドは太字ではありません。
表8-5 NestedTableMappingメソッドのプロパティ
Copyright © 1997, 2006, Oracle. All rights reserved.