| 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