[Seasar-user:14165] Re: DBFlute LikeSearchOptionでの半角スペース処理
宇枝 祐樹
[E-MAIL ADDRESS DELETED]
2008年 5月 14日 (水) 18:14:17 JST
久保様
お世話になっております。
上田です。
下記、ありがとうございます。
>mydbflute/dbflute-0.6.4/templates/om/java/allcommon/cbean/coption/parts
こちら確認してみたいと思います。
>その方法だと、LikeSearchOptionの他の機能が
>利用できなくなりますが、非常にマニアックな機能ですので
>利用されていないならばそれでもOKです。
>(大文字小文字変換、半角変換、日本語変換機能ですね)
今回は入力された文字列をそのまま検索にかけておりますが
>半角変換、日本語変換機能
の機能があることは存じませんでした。
ちょっと調べてみようと思います。
kubo さんは書きました:
> 久保です。
>
>
>> こちらの回避方法ですが、修正するテンプレートがわかりませんで
>> 自動生成されるクラス(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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
>
>
Seasar-user メーリングリストの案内