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