S2JDBCをO/Rマッパーとして使う場合、DAO実装クラスの記述上の注意点は、次の通り。
なお、DAOはインターフェースとして定義するものとする。
1. S2AbstractService<エンティティクラス名>をextendsで拡張すると使いやすい。
※ 必須ではないがエンティティを固定できるため、コード記述が楽になる。
2. エンティティで@ManyToOneアノテーションを使っている場合、innerJoinにより関連テーブルのデータも取得できる。
※ 直前の記事に記載されている例を参照のこと。
3. 主キーによる検索は、次のように記述する。
public User get(Integer userId) {
return select().id(userId).getSingleResult();
}
※ 上記1.のS2AbstractServiceを拡張した場合、この記述が使える。
4. 可変の引数を使う場合は、次のように記述する。
public List<User> findByUserId(Integer userId) {
return select().where("userId = ?", userId).getResultList();
}
WHERE句に相当するwhereメソッド等では、可変引数仕様となっている。
複数の条件がある場合は、?と引数の数を増やしていく。
0 件のコメント:
コメントを投稿