2011年11月4日金曜日

[Seasar2][S2JDBC]DAO実装クラスの記述

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 件のコメント:

コメントを投稿