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
管理されたエンティティか判定 contains
エンティティ boolean
(管理されたエンティティならtrue
)エンティティの分離 detach
エンティティ 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
(更新または削除された行数)