[Seasar-user:8887] Re: [DBFlute] 動的にSQLを生成する方法 ★訂正
kubo
[E-MAIL ADDRESS DELETED]
2007年 7月 2日 (月) 19:29:26 JST
久保です。
> 【ConditionBeanによるLike検索のOR条件】
> もし、「A」と「B」だけであれば、以下のように実現することができます。
>
> ex) 本の名前に「S2Dao」もしくは「DBFlute」が含まれているレコードを検索
> (論理削除されていないものだけを対象とする)
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> final LikeSearchOption likeSearchOption = new LikeSearchOption();
> likeSearchOption.likeContain().splitByPipeLine();// ★部分一致&区切り文字'|'
> final LikeSearchOption.LikeAsOrCallback bookNameCallback = new LikeSearchOption.DefaultLikeAsOrCallback() {
> public String getAdditionalTargetPropertyName() {
> return BookDbm.COLUMN_UNCAP_PROP_NAME_OF_BookName;
> }
> };
> likeSearchOption.addLikeAsOrCallback(bookNameCallback);
> cb.query().setBookName_LikeSearch("S2Dao|DBFlute", likeSearchOption);// ★Like検索
> cb.query().setDeleteFlg_Equal_NonDelete();
> final List<Book> bookList = bookBhv.selectList(cb);
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
すいません、こっちのやり方ですが、
少し目的が違いました。
AAA という列 に 「S2Dao」が含まれている
and AAA という列 に 「DBFlute」が含まれている
and AAA という列 に 「...」が含まれている
or
BBB という列 に 「S2Dao」が含まれている
and BBB という列 に 「DBFlute」が含まれている
and BBB という列 に 「...」が含まれている
というような条件を付与したい場合に利用します。
なので、純粋に「LIKEの不定数OR句」というわけではありませんので、
丸岡さんの要件には当てはまりません。
> 【ConditionBeanによるUnionの不定数設定】
> 「C」も含めた場合は、「ConditionBeanによるUnion」を利用します。
> 例えば曖昧検索が前方一致の場合で、OR句ではなくUNION句を利用することによって、
> INDEXの恩恵を得たい場合、以下のように実現することができます。
当てはまるのは、こちらのみになります。
Seasar-user メーリングリストの案内