ネストした表マッピングはNestedTableMappingクラスのインスタンスです。このマッピングは親クラスの属性に関連付けられます。ネストした表マッピングを実行可能にするには次の要素が必要です。
直接ではなくユーザー定義メソッドによって属性にアクセスする場合は、オプションの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, 2004, Oracle. All rights reserved.