アノテーションインターフェース NativeQuery


リポジトリクエリメソッドでネイティブクエリを直接宣言するためのアノテーション。

具体的には、@NativeQuery は、ほとんどの属性に対して @Query(nativeQuery = true) のショートカットとして機能する合成アノテーションです。

このアノテーションは、ネイティブクエリに JPA SQL ResultSet マッピングを適用するために sqlResultSetMapping を定義します。@SqlResultSetMapping で定義されている対応する戻り値の型を必ず使用してください。名前付きネイティブクエリを使用する場合は、名前付きクエリが sqlResultSetMapping を受け入れないため、@NamedNativeQuery(resultSetMapping= …) を介して SQL 結果セットマッピングを定義します。

導入:
3.4
作成者:
Danny van den Elshout, Mark Paluch
関連事項:
  • オプション要素の概要

    オプション要素
    修飾子と型
    オプションの要素
    説明
    ページネーションが使用されているときにカウントクエリを実行するために使用される NamedQuery の名前を返します。
    ページネーション用に生成されるカウントクエリの射影部分を定義します。
    ページネーションクエリでページの要素の合計数を検索するために使用される特別なカウントクエリを定義します。
    使用される名前付きクエリ。
    クエリが完全にアセンブルされた後にクエリ文字列に適用する必要がある 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) の名前。
      デフォルト:
      ""