パッケージ jakarta.persistence

アノテーション型 ConstructorResult


  • @TargetSE({})
    @RetentionSE(RUNTIMESE)
    public @interface ConstructorResult
    SqlResultSetMapping アノテーションと組み合わせて使用して、SQL クエリの SELECT 句をコンストラクターにマッピングします。

    ターゲットクラスのコンストラクターを適用し、指定された列から値を引数として渡します。目的のコンストラクターの引数に対応するすべての列は、コンストラクターの引数リストと同じ順序で ConstructorResult アノテーションの columns 要素を使用して指定する必要があります。コンストラクターの結果として返されるエンティティは、構築されたオブジェクトの主キーが取得されるかどうかに応じて、新しい状態または切り離された状態になります。

    
     Example:
    
       Query q = em.createNativeQuery(
          "SELECT c.id, c.name, COUNT(o) as orderCount, AVG(o.price) AS avgOrder " +
          "FROM Customer c, Orders o " +
          "WHERE o.cid = c.id " +
          "GROUP BY c.id, c.name",
          "CustomerDetailsResult");
    
       @SqlResultSetMapping(
           name="CustomerDetailsResult",
           classes={
              @ConstructorResult(
                   targetClass=com.acme.CustomerDetails.class,
                     columns={
                        @ColumnResult(name="id"),
                        @ColumnResult(name="name"),
                        @ColumnResult(name="orderCount"),
                        @ColumnResult(name="avgOrder", type=Double.class)
                        }
              )
           }
          )
    
     
    導入:
    2.1
    関連事項:
    SqlResultSetMapping, ColumnResult
    • 必須定数のサマリー

      必須要素  
      修飾子と型 必須要素 説明
      ColumnResult[]columns
      (必須)SELECT リストの列を、目的のコンストラクターの引数に順番にマッピングします。
      ClassSEtargetClass
      (必須)コンストラクターが呼び出されるクラス。
    • 要素の詳細

      • targetClass

        ClassSE targetClass
        (必須)コンストラクターが呼び出されるクラス。
      • columns

        ColumnResult[] columns
        (必須)SELECT リストの列を、目的のコンストラクターの引数に順番にマッピングします。