アノテーションインターフェース NativeQuery
@RetentionSE(RUNTIMESE)
@TargetSE({METHODSE,ANNOTATION_TYPESE})
@DocumentedSE
@Query(nativeQuery=true)
public @interface NativeQuery
リポジトリクエリメソッドでネイティブクエリを直接宣言するためのアノテーション。
具体的には、@NativeQuery は、ほとんどの属性に対して @Query(nativeQuery = true) のショートカットとして機能する合成アノテーションです。
このアノテーションは、ネイティブクエリに JPA SQL ResultSet マッピングを適用するために sqlResultSetMapping を定義します。@SqlResultSetMapping で定義されている対応する戻り値の型を必ず使用してください。名前付きネイティブクエリを使用する場合は、名前付きクエリが sqlResultSetMapping を受け入れないため、@NamedNativeQuery(resultSetMapping= …) を介して SQL 結果セットマッピングを定義します。
オプション要素の概要
オプション要素修飾子と型オプションの要素説明ページネーションが使用されているときにカウントクエリを実行するために使用されるNamedQueryの名前を返します。ページネーション用に生成されるカウントクエリの射影部分を定義します。ページネーションクエリでページの要素の合計数を検索するために使用される特別なカウントクエリを定義します。使用される名前付きクエリ。ClassSE<? extends QueryRewriter>クエリが完全にアセンブルされた後にクエリ文字列に適用する必要があるQueryRewriterを定義します。このクエリに適用する@SqlResultSetMapping(name)の名前。アノテーション付きメソッドが呼び出されたときに実行されるネイティブクエリを定義します。
要素の詳細
value
アノテーション付きメソッドが呼び出されたときに実行されるネイティブクエリを定義します。Query.value()のエイリアスです。- デフォルト:
- ""
countQuery
ページネーションクエリでページの要素の合計数を検索するために使用される特別なカウントクエリを定義します。何も構成されていない場合は、元のクエリまたはcountProjection()クエリ (存在する場合) からカウントクエリが派生されます。Query.countQuery()のエイリアスです。- デフォルト:
- ""
countProjection
ページ区切り用に生成されるカウントクエリの射影部分を定義します。countQuery()もcountProjection()も構成されていない場合は、元のクエリからカウントクエリが派生します。Query.countProjection()のエイリアスです。- デフォルト:
- ""
name
使用する名前付きクエリ。定義されていない場合は、${domainClass}.${queryMethodName}という名前のNamedQueryが使用されます。Query.name()のエイリアス。- デフォルト:
- ""
countName
ページネーションが使用されている場合にカウントクエリを実行するために使用されるNamedQueryの名前を返します。デフォルトでは、.countで終わる名前付きクエリ名になります。Query.countName()のエイリアスです。- デフォルト:
- ""
queryRewriter
クエリが完全に組み立てられた後にクエリ文字列に適用するQueryRewriterを定義します。Query.queryRewriter()のエイリアスです。- デフォルト:
- org.springframework.data.jpa.repository.QueryRewriter.IdentityQueryRewriter.class
sqlResultSetMapping
StringSE sqlResultSetMappingこのクエリに適用する@SqlResultSetMapping(name)の名前。- デフォルト:
- ""