S2JDBCのwhereでor検索
or検索を調べる → ComplexWhereを見つける → ソースを書き直す → SimpleWhereだけで出来るというコメントを見つける → ソースを書き直す → タイプセーフAPIを使うならSimpleWhereはよくないという記述を見つける
orz
最初にここを読んだ。
http://d.hatena.ne.jp/Johnnydaisuke/20090106/1231275226
で、コメントまでよく読んでみると…
Operations クラスの static メソッドに or(Wehere...) が用意されているので,ServiceClass2 は
http://d.hatena.ne.jp/Johnnydaisuke/20090106/1231275226
〜.where(or(wheres, wheres2)).〜
と書くことができます.
http://s2container.seasar.org/2.4/ja/s2jdbc_typesafe.html#Operations_クラス
ComplexWhere はもう使うことないかもです.
これを見て更にソースを書き換えた後に公式のドキュメントの記述を発見。
SimpleWhere クラスを使った場合,プロパティの型とパラメータの値の整合性はチェックされません. タイプセーフに使うには, SimpleWhere クラスではなく, 後述の Operations クラス を使用してください.
〜〜
jdbcManager.from(Employee.class) .where( eq(name(), name), gt(salary(), salary)) .getResultList();
http://s2container.seasar.org/2.4/ja/s2jdbc_typesafe.html
サービスクラスはS2JDBC-Genで作っているのでeqやandやorと書くだけでいけた。
随分遠回りをした。