@TargetSE(valueSE={}) @RetentionSE(valueSE=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) } ) } )
SqlResultSetMapping
, ColumnResult
修飾子と型 | 必須要素と説明 |
---|---|
ColumnResult[] | columns (必須)SELECT リストの列を、目的のコンストラクターの引数に順番にマッピングします。 |
ClassSE | targetClass (必須)コンストラクターが呼び出されるクラス。 |
public abstract ClassSE targetClass
public abstract ColumnResult[] columns
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.