[Seasar-user:16817] Re: [S2Dao] 複合主キーのテーブルでIN句を使用した検索方法について
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2009年 2月 3日 (火) 12:40:18 JST
中村(taedium)です。
> 複合主キーを持つテーブルに対してIN句で検索を行いたいのですが
> S2Daoでどのように指定すればよいかわからずメールさせて頂きました。
例としてはこんな感じになります。
(複合主キーかどうかは関係ないかも。)
■Daoの定義
IN句で指定したい値は配列かListでDaoのメソッドに渡します。
public interface EmployeeDao {
@Arguments("jobs")
List<Employee> getEmployees(List<String> jobs);
}
■対応するSQLファイル(EmployeeDao_getEmployees.sql)
INの後ろにコメントでパラメータと対応付けます。
SELECT * FROM emp
WHERE job IN /*jobs*/('dummy1','dummy2')
BEGINコメントやIFコメントと絡めて次のように書くと便利かもしれません。
SELECT * FROM emp
/*BEGIN*/WHERE
/*IF jobs.size != 0 */job IN /*jobs*/('dummy1','dummy2')/*END*/
/*END*/
--
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内