この章では、リレーショナル集約オブジェクト・マッピングを使用するために構成する必要がある様々なコンポーネントについて説明します。
注意: ソース・オブジェクトのディスクリプタのリレーショナル集約オブジェクト・マッピングを構成します。ただし、構成する前に、ターゲット・オブジェクトのディスクリプタを集約として指定する必要があります(23.6項「クラスまたは集約タイプとしてのリレーショナル・ディスクリプタの構成」を参照)。 |
この章の内容は次のとおりです。
複数のマッピング・タイプに共通のTopLinkマッピング・オプションを構成する方法の詳細は、第121章「マッピングの構成」を参照してください。
TopLinkマッピングの作成方法の詳細は、第120章「マッピングの作成」を参照してください。
表37-1は、リレーショナル集約オブジェクト・マッピングの構成可能オプションを示します。
表37-1は、リレーショナル集約オブジェクト・マッピングの構成可能オプションを示します。
表37-1 リレーショナル集約オブジェクト・マッピングの構成可能オプション
オプション | Oracle JDeveloper |
TopLink Workbench |
Java |
---|---|---|---|
参照ディスクリプタ(28.4項「参照ディスクリプタの構成」を参照) |
|||
メソッドまたは直接フィールド・アクセス(121.6項「マッピング・レベルでのメソッドまたは直接フィールド・アクセスの構成」を参照) |
|||
読取り専用マッピング(121.2項「読取り専用マッピングの構成」を参照) |
|||
許容NULL値(37.3項「許容NULL値の構成」を参照) |
|||
マッピング・コメント(121.8項「マッピング・コメントの構成」を参照) |
|||
集約フィールド(37.2項「集約フィールドの構成」を参照) |
例37-1は、Javaコードによる集約オブジェクト・マッピングの作成方法とディスクリプタへの追加方法を示します。
例37-1 集約オブジェクト・マッピング
public void customize(ClassDescriptor descriptor) { AggregateObjectMapping mapping = new AggregateObjectMapping(); // configure mapping ... // add mapping to descriptor descriptor.addMapping(mapping); }
詳細は、次を参照してください。
ディスクリプタを集約ディスクリプタとして定義する場合、TopLinkではターゲット・クラスのフィールドごとに1つのマッピング・タイプを指定できますが、フィールドとデータベース表の関連付けは、ソース・クラス・ディスクリプタで集約オブジェクト・マッピングを構成した後で可能になります。つまり、ターゲット・クラス・ディスクリプタは各ターゲット・クラス・フィールドがマップされる方法を定義し、ソース・クラス・ディスクリプタは各ターゲット・クラス・フィールドがマップされる場所を定義する、ということです。
この項では、各ターゲット・クラス・フィールドがマップされる場所を定義するため、ソース・クラス・ディスクリプタを構成する方法について説明します。
各ターゲット・クラス・フィールドがマップされる方法を定義するためのターゲット・クラス・ディスクリプタの構成方法の詳細は、23.6項「クラスまたは集約タイプとしてのリレーショナル・ディスクリプタの構成」を参照してください。
集約マッピングのマップされたフィールドを指定するには、次の手順を実行します。
次の情報を参照し、タブの各フィールドを指定します。
フィールド | 説明 |
---|---|
フィールドの説明 | この列は、そのディスクリプタが集約として定義されるターゲット・オブジェクトからのフィールドの名前を示します(23.6項「クラスまたは集約タイプとしてのリレーショナル・ディスクリプタの構成」を参照)。これらは表示専用であり、変更できません。 |
フィールド | この列を使用して、TopLinkが対応するターゲット・オブジェクト・フィールドにマップするソース・オブジェクト・データベース表フィールドを選択します。 |
集約オブジェクトのデータベース行のすべてのフィールドがnull
である場合、デフォルトでは、null
値を集約オブジェクトに指定するのとは対照的に、TopLinkによりnull
が適切なソース・オブジェクトに配置されます。
マッピングにNULL値を含めるようにするには、次の手順を実行します。
「NULLを許容」オプションを選択して、このマッピングにNULL値が含められるようにします。
AggregateObjectMapping
メソッドのallowNull
とdontAllowNull
を使用して、NULL値を許容するかどうかを構成できます。
AggregateObjectMapping
で使用可能なメソッドの詳細は、『Oracle Fusion Middleware Java API Reference for Oracle TopLink』を参照してください。