DAOインタフェース
Kuina-Daoを利用するにはDAO (Data Access Object) のインタフェースを作成します. 特殊な場合を除いてDAOの実装を作成する必要はありません.
DAOはエンティティ毎に作成することが推奨されます.
パッケージ
DAOインタフェースはSeasar2.4が提供するSMART deployの規約に従ったパッケージに配置することを推奨します. SMART deployの規約では,DAOのパッケージは次のようになります.
- ルートパッケージ
.dao
インタフェース
DAOのインタフェース名はSeasar2.4が提供するSMART deployの規約に従うことを推奨します. SMART deployの規約では,DAOのインタフェース名は次のようになります.
- エンティティ名
Dao
GenericDaoインタフェース
Kuina-Daoでは,DAOインタフェースの基本メソッドを定義したGeneric DAOインタフェースを用意しています.
org.seasar.kuina.dao.GenericDao<ENTITY, ID>
型変数ENTITY
はDAOの操作対象となるエンティティの型,
型変数ID
はDAOの操作対象となるエンティティのIDプロパティ/フィールド (主キー) の型です.
Generic DAOインタフェースを拡張すると,基本メソッドを DAOインタフェースに定義しなくても使用することが可能となります.
public interface EmployeeDao extends GenericDao<Employee, Long> { // カスタムメソッド ... }
メソッド
DAOインタフェースにはエンティティを操作するためのメソッドを定義します. Kuina-Daoはメソッドの名前や引数・戻り値から実行すべき操作を判断します.
- 基本メソッド
-
操作 メソッド名 (正規表現) 引数 戻り値 全件取得 (get|find)All
なし エンティティの List
主キーによる検索 get|find
エンティティの主キー エンティティ 主キーによる検索 (リファレンスのみ) (get|find)Reference
エンティティの主キー エンティティ エンティティの永続化 persist
エンティティ void
エンティティの削除 remove
エンティティ void
エンティティのマージ merge
エンティティ エンティティ エンティティのリフレッシュ refresh
エンティティ void
エンティティのリードロック readLock
エンティティ void
エンティティのライトロック writeLock
エンティティ void
- カスタムメソッド
-
操作 メソッド名 (正規表現) 引数 戻り値 主キーとバージョンによる検索 get|find
エンティティの主キー, バージョン エンティティ 引数を条件とする検索 (get|find).*
問い合わせ条件に含めるエンティティのプロパティの並び エンティティまたはエンティティの List
エンティティのプロパティを条件とする検索 (get|find).*
エンティティ エンティティまたはエンティティの List
DTOのプロパティを条件とする検索 (get|find).*
DTO エンティティまたはエンティティの List
条件式による検索 (get|find).*
条件式の並び エンティティまたはエンティティの List
JPQLによる検索 (get|find).*
JPQLに含まれるパラメータの並び エンティティまたはエンティティの List
SQLによる検索 (get|find).*
SQLに含まれるパラメータの並び DTOまたはDTOの List
またはMap
またはMap
のList
JPQLによる更新・削除 (update|delete|remove).*
JPQLに含まれるパラメータの並び void
またはint
(更新または削除された行数)SQLによる挿入・更新・削除 (insert|update|delete|remove).*
SQLに含まれるパラメータの並び void
またはint
(更新または削除された行数)