Javaのネストした表マッピングの実装

ネストした表マッピングは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メソッドのプロパティ  

プロパティ デフォルト メソッド名
マップされる属性 * 適用しない setAttributeName(String name)
親クラスの設定 * 適用しない setReferenceClass(Class referenceClass)
ユーザー定義データ型 * 適用しない setStructureName(String structureName)
マップされるフィールド * 適用しない setFieldName(String fieldName)
メソッド・アクセス 直接アクセス setGetMethodName(String name)setSetMethodName(String name)
インダイレクション インダイレクションの使用 useIndirection()dontUseIndirection()setUsesIndirection(boolean usesIndirection)
私有リレーションシップ 独立 independentRelationship()privateOwnedRelationship()setIsPrivateOwned(Boolean isPrivateOwned)
読取り専用 読取り/書込み readWrite()readOnly()setIsReadOnly(boolean readOnly)
*必須プロパティ

 

Copyright © 1997, 2004, Oracle. All rights reserved.