@Repeatable(value=NamedQueries.class) @Target(value=TYPE) @Retention(value=RUNTIME) public @interface NamedQuery
NamedQuery
アノテーションはエンティティ(Entity
の付いたクラス)やマップドスーパークラス(MappedSuperclass
の付いたクラス)に適用できます。
以下はJPQLの名前付きクエリーの定義の例です。
@NamedQuery( name="findAllCustomersWithName", query="SELECT c FROM Customer c WHERE c.name LIKE :custName" )
以下は名前付きクエリーの使用方法の例です。
@PersistenceContext public EntityManager em; ... customers = em.createNamedQuery("findAllCustomersWithName") .setParameter("custName", "Smith") .getResultList();
修飾子とタイプ | 必須要素と説明 |
---|---|
java.lang.String |
name
(必須) クエリーオブジェクトを作成する
EntityManager のメソッドでクエリを参照するために使用される名前。 |
java.lang.String |
query
(必須) JPQLのクエリー文字列。
|
修飾子とタイプ | 任意要素と説明 |
---|---|
QueryHint[] |
hints
(オプション) クエリープロパティとヒント。
|
LockModeType |
lockMode
(オプション) クエリー実行で使用されるロックモードタイプ。
|
public abstract java.lang.String name
EntityManager
のメソッドでクエリを参照するために使用される名前。public abstract LockModeType lockMode
lockMode
にLockModeType.NONE
以外が指定されている場合、クエリーはトランザクション内で実行されなければならず、
永続化コンテキストはトランザクションに参加する必要があります。public abstract QueryHint[] hints
Translated by @megascus.