この章では、オブジェクト・リレーショナル・マッピングの構成方法について説明します。
表47-1に、構成可能なオブジェクト・リレーショナル・マッピングのタイプと、そのタイプで対応している構成可能オプションが記載されたタイプ別の章への相互参照を示します。
表47-1 オブジェクト・リレーショナル・マッピングの構成
作成対象 | 参照先 |
---|---|
|
第48章「オブジェクト・リレーショナルの構造マッピングの構成」 |
|
第49章「オブジェクト・リレーショナルの参照マッピングの構成」 |
|
第50章「オブジェクト・リレーショナルの配列マッピングの構成」 |
|
第51章「オブジェクト・リレーショナルのオブジェクト配列マッピングの構成」 |
|
第52章「オブジェクト・リレーショナルのネストした表マッピングの構成」 |
表47-2に、複数のオブジェクト・リレーショナル・マッピング・タイプによって共有される構成可能オプションを示します。
詳細は、次を参照してください。
表47-2に、複数のオブジェクト・リレーショナル・マッピング・タイプによって共有される構成可能オプションを示します。ここで説明する構成可能オプションの他に、表47-1に示すような固有の「オブジェクト・リレーショナル・マッピング・タイプ」で説明したオプションも構成します。
他のクラスへのリレーションシップを持つ属性をマップする場合は、参照クラス(マップする属性が参照するJavaクラス)を指定する必要があります。
表47-3では、どのオブジェクト・リレーショナル・マッピングがこのオプションをサポートしているかを示します。
マップする属性のターゲット・クラスを指定するには、oracle.toplink.mappings.ForeignReferenceMapping
メソッドsetReferenceClass
を使用します。
例47-1では、このメソッドの使用方法を示します。Employee
クラスのmanager
属性をマップするReferenceMapping
もともに使用されています。
すべてのオブジェクト・リレーショナル・マッピングでは、Javaオブジェクトの属性をデータベースのフィールドにマップします。属性名はマップする属性の名前です。この名前は参照クラスで指定された名前です(「参照クラスの構成」を参照)。
表47-4では、どのオブジェクト・リレーショナル・マッピングがこのオプションをサポートしているかを示します。
マップする属性の名前を指定するには、oracle.toplink.mappings.DatabaseMapping
メソッドsetAttributeName
を使用します。
例47-2では、このメソッドの使用方法を示します。Employee
クラスのmanager
属性をマップするReferenceMapping
もともに使用されています。
すべてのオブジェクト・リレーショナル・マッピングでは、指定した属性のマップ先にするデータベース・フィールドの名前が必要になります。このフィールド名には、データベース表の列名、またはデータベースで作成された特定のオブジェクト・タイプに属するフィールドの名前を指定できます。
表47-5では、どのオブジェクト・リレーショナル・マッピングがこのオプションをサポートしているかを示します。
オブジェクト・リレーショナル・マッピングのメソッドsetFieldName
を使用して、属性をマップするデータベース・フィールドを指定します。
例47-3に、このメソッドの使用方法を示します。Employee
クラスの属性phone
をデータベース・フィールド名PHONE_NUMBERにマップするObjectArrayMapping
もともに使用されています。
いくつかのオブジェクト・リレーショナル・マッピングでは、マップしようとしているフィールドのデータ・タイプまたは構造名の指定が必須です。構造名は、フィールドを定義する配列または表タイプの名前です。
表47-6は、どのオブジェクト・リレーショナル・マッピングがこのオプションをサポートしているかを示します。
マップする属性の構造を指定するには、オブジェクト・リレーショナル・マッピングのメソッドsetStructureName
を使用します。
例47-4に、このメソッドの使用方法を示します。Employee
クラスの属性phones
をタイプPHONE_ARRAY_TYPE
のデータベース・フィールド名PHONE_NUMBERSにマップするObjectArrayMapping
もともに使用されています。