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

前
 
次
 

@PLSQLRecord

@PLSQLRecordを使用して、PLSQLプロシージャ内で使用するデータベースPLSQL RECORDタイプを定義します。

注釈要素

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

表2-51 @PLSQLRecordの注釈要素

注釈要素 説明 デフォルト

name

(必須)データベースのレコード・タイプの名前。


compatibileType

(必須)レコードの構造をミラーリングするデータベースOBJECTYPEの名前。


fields

(必須)レコード・タイプのフィールド。


javaType

(オプション)オブジェクト・タイプのためのクラス。@Struct注釈を使用してこのクラスをマップする必要があります。



使用方法

Oracle PLSQL RECORDタイプは、構造化されたデータベース・タイプです。JDBCはこれらのタイプを戻すメカニズムを提供していませんが、TopLinkはこれらのタイプからOBJECTタイプへの変換をサポートしています。データベースでOBJECTタイプを作成してRECORDタイプをミラーリングし、@PLSQLRecordcompatibileTypeとして提供する必要があります。

RECORDをJavaクラスにマップしたり、Javaクラスを@Embeddableとしてマップしたり、@Struct注釈を使用してRECORDタイプをミラーリングするOBJECTタイプにJavaクラスをマップすることができます。

PLSQLストアド・プロシージャ問合せに対するパラメータとして、Javaクラスをコールしたり戻すことができます。

例2-90に、この注釈を使用する方法を示します。

例2-90 @PLSQLRecord注釈の使用

@NamedPLSQLStoredFunctionQuery(name="getEmployee", functionName="EMP_PKG.GET_EMP",
    returnParameter=@PLSQLParameter(name="RESULT", databaseType="EMP_PKG.EMP_REC"))
@Embeddable
@Struct(name="EMP_TYPE", fields={"F_NAME", "L_NAME", "SALARY"})
@PLSQLRecord(name="EMP_PKG.EMP_REC", compatibleType="EMP_TYPE", javaType=Employee.class,
    fields={@PLSQLParameter(name="F_NAME"), @PLSQLParameter(name="L_NAME"), @PLSQLParameter(name="SALARY", databaseType="NUMERIC_TYPE")})
public class Employee {
 ...
}

関連項目

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