ヘッダーをスキップ
Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス
12c (12.1.2)
E48005-01
  目次へ移動
目次

前
 
次
 

@Struct

@Structを使用して、データベースのStruct型にマップするクラスを定義します。通常、埋込み可能クラスである必要がありますが、オブジェクト表に格納される場合はエンティティも可能です。

注釈要素

表2-64は、この注釈の要素を示しています。

表2-64 @Structの注釈要素

注釈要素 説明 デフォルト

name

(必須)データベース構造型のデータベース名。


fields

(オプション)データベース構造型に含まれるフィールドの順序を定義します。



使用方法

Struct型は、一部のデータベースでサポートされる拡張オブジェクト・リレーショナル・データ型です。Struct型は、OracleのOBJECT型など、データベースのユーザー定義型です。Structには通常、Arrays (VARRAY)型またはその他のStruct型が含まれ、Structは列または表に格納できます。

Struct型を使用して、Oracle DatabaseでRECORD型を使用するPL/SQLストアド・プロシージャをコールすることもできます。

例2-103に、@Struct注釈を使用してOBJECT型にマップするJavaクラスを定義する方法を示します。

例2-103 @Struct注釈の使用

@Embeddable
@Struct(name="EMP_TYPE", fields={"F_NAME", "L_NAME", "SALARY"})
public class Employee {
 @Column(name="F_NAME")
 private String firstName;
 @Column(name="L_NAME")
 private String lastName;
 @Column(name="SALARY")
 private BigDecimal salary;
 ...
}

例2-104に、eclipselink-orm.xmlファイルの<struct>要素を使用する方法を示します。

例2-104 <struct> XMLの使用

<embeddable class="Address" access="FIELD">
  <struct name="PLSQL_P_PLSQL_ADDRESS_REC">
    <field>ADDRESS_ID</field>
    <field>STREET_NUM</field>
    <field>STREET</field>
    <field>CITY</field>
    <field>STATE</field>
  </struct>
  <attributes>
    <basic name="id">
      <column name="ADDRESS_ID"/>
    </basic>
    <basic name="number">
      <column name="STREET_NUM"/>
    </basic>
  </attributes>
</embeddable>

関連項目

詳細は、次を参照してください。