アノテーション一覧
DAOインタフェースやDTOに指定可能なアノテーションの一覧です.
- @Distinctアノテーション
- @FetchJoinアノテーション
- @FetchJoinsアノテーション
- @FirstResultアノテーション
- @FlushModeアノテーション
- @Hintアノテーション
- @Hintsアノテーション
- @MaxResultsアノテーション
- @NamedParameterアノテーション
- @Orderbyアノテーション
- @PoisitionalParameterアノテーション
- @QueryNameアノテーション
- @TargetEntityアノテーション
- @TemporalSpecアノテーション
@Distinctアノテーション
生成されるJPQLのSELECT
句にDISTINCT
を指定します.
1対多・多対多の関連をFETCH JOINする場合に,結果リストから重複を取り除くことができます.
- 対象
- Daoメソッド (Named Query・SQL Queryを除く)
- 指定方法
@Distinct
@FetchJoinアノテーション
生成するJPQLのFROM句でFETCH JOINを指定します.
- 対象
- Daoメソッド (Named Query・SQL Queryを除く)
- 指定方法
@FetchJoin( value = "relationshipName", joinSpec = JoinSpec.INNER_JOIN )
value
- FETCH JOINする関連名を指定します.
joinSpec
-
FETCH JOINする方法を指定します.
JoinSpec.INNER_JOIN
またはJoinSpec.LEFT_OUTER_JOIN
を 指定することができます. デフォルトはJoinSpec.INNER_JOIN
です.
@FetchJoinsアノテーション
生成するJPQLのFROM句にFETCH JOINを複数指定します.
- 対象
- Daoメソッド (Named Query・SQL Queryを除く)
- 指定方法
@FetchJoins( {@FetchJoin(...), @FetchJoin(...)} )
value
@FetchJoin
アノテーションを任意の数指定することができます.
@FirstResultアノテーション
引数またはDTOのプロパティでページングを指定する際に,
最初の位置を指定する引数またはプロパティをfirstResult
以外の
名前にする場合に指定します.
- 対象
- Daoメソッドの引数
- DTOのプロパティのgetterメソッド
- 指定方法
@FirstResult
@FlushModeアノテーション
問い合わせのフラッシュ・モードを指定します.
FlushModeType.AUTO
を指定した場合,または指定しなかった場合は,
EntityManager
のフラッシュ・モードに従います.
FulshModeType.COMMIT
を指定した場合は問い合わせの前に永続コンテキストを同期化するための
フラッシュは行われません.
- 対象
- Daoメソッド
- 指定方法
@FulshMode(FulshModeType.COMMIT)
value
-
フラッシュ・モードを指定します.
FlushModeType.AUTO
またはFlushModeType.COMMIT
を 指定することができます.
@Hintアノテーション
問い合わせのヒントを指定します.
- 対象
- Daoメソッド (Named Query・SQL Queryを除く)
- 指定方法
@Hint( name = "hintName", value = "hintValue" )
name
- ヒントの名前を指定します.
value
- ヒントの値をOGNL式で指定します. 文字列値を指定する場合はダブルクオートで囲む必要があります.
@Hintsアノテーション
問い合わせのヒントを複数指定します.
- 対象
- Daoメソッド (Named Query・SQL Queryを除く)
- 指定方法
@Hints( {@Hint(...), @Hint(...)} )
value
@Hint
アノテーションを任意の数指定することができます.
@MaxResultsアノテーション
引数またはDTOのプロパティでページングを指定する際に,
最大件数を指定する引数またはプロパティをmaxResults
以外の
名前にする場合に指定します.
- 対象
- Daoメソッドの引数
- DTOのプロパティのgetterメソッド
- 指定方法
@MaxResults
@NamedParameterアノテーション
Kuina-Daoが特別扱いする
firstResult
・maxResults
・orderby
という名前の
引数またはDTOのプロパティをパラメータとして使用する場合に指定します.
- 対象
- Daoメソッドの引数
- DTOのプロパティのgetterメソッド
- 指定方法
@NamedParameter
@Orderbyアノテーション
このアノテーションは二種類の用途に使われます.
実行時に変わらない,静的なソート順を指定するためにDaoメソッドに指定します.
実行時に動的に変わる,動的なソート順を引数またはDTOのプロパティで指定する際に,
ソート順を指定する引数またはプロパティをorderby
以外の名前にする場合に指定します.
静的なソート順と動的なソート順は同時に指定することができます. その場合,生成されるJPQLのORDER BY句は静的なソート順で指定された項目の後に 動的なソート順で指定された項目が続きます.
- 対象
- Daoメソッド (静的なソート順)
- Daoメソッドの引数 (動的なソート順)
- DTOのプロパティのgetterメソッド (動的なソート順)
- 指定方法
@Orderby("name, saraly DESC")
value
- 静的なソート順をJPQLのORDER BY句と同じ構文で指定します.
@PoisitionalParameterアノテーション
JPQLによる検索において,Named ParameterではなくPositional Parameterを使う場合に指定します.
- 対象
- Daoメソッド(SQL Queryを除く)
- 指定方法
@PositionalParameter
@QueryNameアノテーション
JPQLによる検索において,Named Queryの名前を明示的に指定する場合に指定します.
- 対象
- Daoメソッド(Named Queryのみ)
- 指定方法
@QueryName("queryName")
value
- Named Queryの名前を指定します.
@TargetEntityアノテーション
検索対象のエンティティを明示的に指定します.
- 対象
- Daoインタフェース
- Daoメソッド
- 指定方法
@TargetEntity(Employee.class)
value
- エンティティのクラスを指定します.
@TemporalSpecアノテーション
検索条件でjava.util.Date
またはjava.util.Calendar
を指定する場合に,
時制を指定します.
@TemporalSpec
アノテーションを指定しなかった場合はTemporalType.DATE
が
使用されます.
- 対象
- Daoメソッドの引数
- DTOのプロパティのgetterメソッド
- 指定方法
@TemporalSpec(TemporalType.DATE)
value
-
時制を指定します.
TemporalType.DATE
・TemporalType
.DATE・TemporalType.DATE
の いずれかを指定することができます.