パッケージ jakarta.persistence

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


名前付きネイティブ SQL クエリと、オプションでネイティブ SQL クエリの結果のマッピングを宣言します。クエリ名のスコープは永続化ユニットに限定されます。名前付きクエリは、EntityManager.createNamedQuery(String, Class) を呼び出すことで実行できます。

単純なケースでは、resultClass() はネイティブ SQL クエリ結果セットをどのように解釈するかを指定します。例:

より複雑なケースでは、結果セットのマッピングが必要になります。これは、別のアノテーションを使用して指定するか、このアノテーションの要素を使用して指定できます。

NamedNativeQuery アノテーションは、エンティティクラスまたはマップされたスーパークラスに適用できます。

導入:
1.0
関連事項:
  • 要素の詳細

    • 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

      コンストラクターへの結果セットのマッピングを指定します。resultSetMapping() との併用はできません。
      導入:
      3.2
      デフォルト:
      {}
    • columns

      ColumnResult[] columns
      スカラー値への結果セットのマッピングを指定します。resultSetMapping() との併用はできません。
      導入:
      3.2
      デフォルト:
      {}