[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 メーリングリストの案内