@Repeatable(value=NamedStoredProcedureQueries.class) @Target(value=TYPE) @Retention(value=RUNTIME) public @interface NamedStoredProcedureQuery
NamedStoredProcedureQuery
アノテーションはエンティティ(Entity
の付いたクラス)やマップドスーパークラス(MappedSuperclass
の付いたクラス)に適用できます。
name
要素はEntityManager.createNamedStoredProcedureQuery(java.lang.String)
メソッドに実行可能なStoredProcedureQuery
オブジェクトを作成するときに引数として渡される名前です。
名前は永続化ユニット内で共有されます。
procedureName
要素はデータベース内でのストアドプロシージャの名前です。
ストアドプロシージャのパラメーターはparameters
要素で指定します。
すべてのパラメーターをストアドプロシージャのパラメーターリスト内に出現する順序で指定する必要があります。
resultClasses
要素は結果をマッピングするために使用されるクラスを示します。
SqlResultSetMapping
アノテーションで定義されているのと同じでresultSetMappings
要素は1つ以上の結果セットのマッピングを指定します。
複数の結果セットがある場合、それらは同じメカニズムを使用してマッピングされると想定されます。
たとえば、結果クラスマッピングのセットもしくは結果セットマッピングのセットのどちらかすべてを介してマッピングされます。
これらのマッピングの指定の順序はストアドプロシージャの呼び出しによって結果セットが戻される順序と同じでなければなりません。
ストアドプロシージャが1つ以上の結果セットを返し、resultClasses
やresultSetMappings
要素のいずれも指定されていない場合、
結果セットはObjectの配列のリストとして返されます。
ストアドプロシージャの結果セットのマッピングに異なる戦略を組み合わせる方法は定義されていません。
hints
要素はクエリーのプロパティやヒントを指定するのに使用できます。
この仕様(JPA Spec.)では定義されているプロパティはプロバイダによって監視されなければなりません。
プロバイダによって認識されないベンダー固有のヒントは無視される必要があります。
名前付きストアドプロシージャクエリー内のすべてのパラメーターをStoredProcedureParameter
を使用して指定する必要があります。
StoredProcedureQuery
,
StoredProcedureParameter
修飾子とタイプ | 必須要素と説明 |
---|---|
java.lang.String |
name
EntityManager のメソッドでストアドプロシージャのクエリーオブジェクトを作成するときの参照として使用される名前。 |
java.lang.String |
procedureName
データベース内のストアドプロシージャの名前。
|
修飾子とタイプ | 任意要素と説明 |
---|---|
QueryHint[] |
hints
クエリーのプロパティとヒント。
|
StoredProcedureParameter[] |
parameters
ストアドプロシージャのすべてのパラメーターの情報。
|
java.lang.Class[] |
resultClasses
結果のマッピングに使用されるクラス。
|
java.lang.String[] |
resultSetMappings
メタデータとして定義される一つ以上の結果セットのマッピングの名前。
|
public abstract java.lang.String name
EntityManager
のメソッドでストアドプロシージャのクエリーオブジェクトを作成するときの参照として使用される名前。public abstract StoredProcedureParameter[] parameters
public abstract java.lang.String[] resultSetMappings
public abstract QueryHint[] hints
Translated by @megascus.