[Seasar-user:14164] Re: DBFlute LikeSearchOptionでの半角スペース処理
kubo
[E-MAIL ADDRESS DELETED]
2008年 5月 14日 (水) 17:32:10 JST
久保です。
> こちらの回避方法ですが、修正するテンプレートがわかりませんで
> 自動生成されるクラス(LikeSearchOptionなど)の内部処理を
> 調整できるファイルがあるのでしょうか?
DBFlute本体モジュールの
mydbflute/dbflute-0.6.4/templates/om/java/allcommon/cbean/coption/parts
配下のxxx.vmファイルになります。
> LikeSearchOptionで利用していたメソッドを独自作成クラスで
> 再定義し、
> LikeSearchOption#generateRealValue(String value)にあった
> value = super.generateRealValue(value);
> を再定義したメソッドで削除する形にすることで、
> 回避はできているようです。
その方法だと、LikeSearchOptionの他の機能が
利用できなくなりますが、非常にマニアックな機能ですので
利用されていないならばそれでもOKです。
(大文字小文字変換、半角変換、日本語変換機能ですね)
2008/5/14 宇枝 祐樹 <[E-MAIL ADDRESS DELETED]>:
> 久保様
>
> お世話になっております。
> 上田です。
>
> 現状の回避方法で質問させていただきたくメールいたしました。
>
>
> >A. テンプレートを修正してしまう。
> >上記3つのクラスのgenerateRealValue()の引数チェックを
> >まるごと削除して自動生成し直します。
>
> こちらの回避方法ですが、修正するテンプレートがわかりませんで
> 自動生成されるクラス(LikeSearchOptionなど)の内部処理を
> 調整できるファイルがあるのでしょうか?
> (自動生成されたクラスに手を加えても認識されないのですね。)
>
> >B. LikeSearchOptionを継承した独自クラスを作成する。
> こちら作成してみました。
>
> LikeSearchOptionで利用していたメソッドを独自作成クラスで
> 再定義し、
> LikeSearchOption#generateRealValue(String value)にあった
> value = super.generateRealValue(value);
> を再定義したメソッドで削除する形にすることで、
> 回避はできているようです。
>
> 上田
>
> kubo さんは書きました:
>
>
> > 久保です。
> >
> >
> >> 申し訳ありません。こちらDBFluteのバグです。
> >> そもそもここに引数はチェック不要です。
> >> 次バージョンでは直したものを反映させます。
> >>
> >
> > 新バージョンで直して、検証テストも追加しました。
> > 今週末あたりでリリースいたします。
> >
> > 2008/5/13 kubo <[E-MAIL ADDRESS DELETED]>:
> >
> >> 久保です。
> >>
> >> 上田さん、こんばんわ
> >>
> >>
> >> ToUpperLowerCaseOptionParts
> >> ToSingleByteOptionParts
> >> JapaneseOptionPartsAgent
> >> のgenerateRealValue()の引数チェックですね。
> >>
> >> if (value == null || value.trim().length() == 0) {
> >>
> >> 申し訳ありません。こちらDBFluteのバグです。
> >> そもそもここに引数はチェック不要です。
> >> 次バージョンでは直したものを反映させます。
> >>
> >> ご利用のバージョンのままでの回避方法ですが、
> >>
> >> A. テンプレートを修正してしまう。
> >>
> >> 上記3つのクラスのgenerateRealValue()の引数チェックを
> >> まるごと削除して自動生成し直します。
> >>
> >> B. LikeSearchOptionを継承した独自クラスを作成する。
> >>
> >> LikeSearchOptionさえ継承していれば動きますので、
> >> サブクラスでオーバーライドして動きを変えてしまえば
> >> 回避できるかもしれません。
> >>
> >>
> >>
> >> 2008/5/13 宇枝 祐樹 <[E-MAIL ADDRESS DELETED]>:
> >>
> >>
> >>
> >>> いつもお世話になっております。
> >>>
> >> > 上田と申します。
> >> >
> >> > DBFluteのLikeSearchOptionで質問させていただきたいです。
> >> >
> >> > ------------------
> >> > 環境
> >> > Seasar2 2.4.22
> >> > dbflute-0.6.4
> >> > --------------------
> >> >
> >> > 検索条件に半角スペースのみ入力した場合にExceptionが発生してしまい
> >> > 回避方法が見つからずにおります。
> >> >
> >> > Exceptionは
> >> > java.lang.IllegalArgumentException: The argument[value] should not be null.
> >> > と出ております。
> >> >
> >> > 内部でjava.lang.String.trim()がかかっており、その為だとは思うのですが、
> >> > これを回避する方法をご存知の方、いらっしゃらないでしょうか?
> >> >
> >> > 外だしSQLですと、現在の実装方法とだいぶ異なってしまうので
> >> > 避けたいところではあるのですが。
> >> >
> >> > 恐れ入りますが、ご教授のほど、宜しくお願い致します。
> >> >
> >> > 上田
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > Seasar-user mailing list
> >> > [E-MAIL ADDRESS DELETED]
> >> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >> >
> >>
> >>
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> >
> >
> >
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内