Oracle® Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス 12c (12.1.2) E48005-01 |
|
![]() 前 |
![]() 次 |
@PLSQLRecord
を使用して、PLSQLプロシージャ内で使用するデータベースPLSQL RECORD
タイプを定義します。
注釈要素
表2-51は、この注釈の要素を示しています。
表2-51 @PLSQLRecordの注釈要素
注釈要素 | 説明 | デフォルト |
---|---|---|
|
(必須)データベースのレコード・タイプの名前。 |
|
|
(必須)レコードの構造をミラーリングするデータベース |
|
|
(必須)レコード・タイプのフィールド。 |
|
|
(オプション)オブジェクト・タイプのためのクラス。 |
使用方法
Oracle PLSQL RECORD
タイプは、構造化されたデータベース・タイプです。JDBCはこれらのタイプを戻すメカニズムを提供していませんが、TopLinkはこれらのタイプからOBJECT
タイプへの変換をサポートしています。データベースでOBJECT
タイプを作成してRECORD
タイプをミラーリングし、@PLSQLRecord
のcompatibileType
として提供する必要があります。
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 { ... }
関連項目
詳細は、次を参照してください。
『Oracle TopLinkの理解』のストアド・プロシージャに関する項
Oracle PL/SQL
http://www.oracle.com/technetwork/database/features/plsql/index.html