パッケージ jakarta.persistence
アノテーションインターフェース NamedNativeQuery
@RepeatableSE(NamedNativeQueries.class)
@TargetSE(TYPESE)
@RetentionSE(RUNTIMESE)
public @interface NamedNativeQuery
名前付きネイティブ SQL クエリと、オプションでネイティブ SQL クエリの結果のマッピングを宣言します。クエリ名のスコープは永続化ユニットに限定されます。名前付きクエリは、
EntityManager.createNamedQuery(String, Class)
を呼び出すことで実行できます。 単純なケースでは、resultClass()
はネイティブ SQL クエリ結果セットをどのように解釈するかを指定します。例:
より複雑なケースでは、結果セットのマッピングが必要になります。これは、別のアノテーションを使用して指定するか、このアノテーションの要素を使用して指定できます。
NamedNativeQuery
アノテーションは、エンティティクラスまたはマップされたスーパークラスに適用できます。
- 導入:
- 1.0
- 関連事項:
必須定数のサマリー
必須要素修飾子と型必須要素説明EntityManager.createNamedQuery(java.lang.String)
の呼び出しでクエリを識別するために使用される名前。ネイティブ SQL クエリ文字列。オプション要素の概要
オプション要素修飾子と型オプションの要素説明コンストラクターへの結果セットのマッピングを指定します。スカラー値への結果セットのマッピングを指定します。エンティティへの結果セットのマッピングを指定します。クエリのプロパティとヒント。ClassSE<?>
各クエリ結果のクラス。メタデータで定義されているSqlResultSetMapping
の名前。
要素の詳細
name
StringSE nameEntityManager.createNamedQuery(java.lang.String)
の呼び出しでクエリを識別するために使用される名前。query
StringSE queryネイティブ SQL クエリ文字列。
hints
QueryHint[] hintsクエリのプロパティとヒント。(ベンダー固有のクエリヒントが含まれる場合があります。)- デフォルト:
- {}
resultClass
ClassSE<?> resultClass各クエリ結果のクラス。result set mapping
が指定されている場合、指定された結果クラスは、結果セットマッピングから推測される型と一致する必要があります。resultClass
が明示的に指定されていない場合は、結果セットマッピング (存在する場合) から推測されるか、デフォルトのObject
またはObject[]
になります。クエリ結果クラスは、クラスオブジェクトを明示的にEntityManager.createNamedQuery(String, Class)
に渡すことによってオーバーライドできます。- デフォルト:
- void.class
resultSetMapping
StringSE resultSetMappingメタデータで定義されているSqlResultSetMapping
の名前。名前付き結果セットマッピングは、ネイティブ SQL クエリの結果セットを解釈するために使用されます。あるいは、要素
entities()
、classes()
、columns()
を使用して、結果セットのマッピングを指定することもできます。これらの要素はresultSetMapping
と組み合わせて使用することはできません。- デフォルト:
- ""
entities
EntityResult[] entitiesエンティティへの結果セットのマッピングを指定します。resultSetMapping()
との併用はできません。- 導入:
- 3.2
- デフォルト:
- {}
classes
ConstructorResult[] classesコンストラクターへの結果セットのマッピングを指定します。resultSetMapping()
との併用はできません。- 導入:
- 3.2
- デフォルト:
- {}
columns
ColumnResult[] columnsスカラー値への結果セットのマッピングを指定します。resultSetMapping()
との併用はできません。- 導入:
- 3.2
- デフォルト:
- {}