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