[Seasar-user:19759] Re: 【S2JDBC】Whereクラスのブール型の変換
渡辺茂昭
[E-MAIL ADDRESS DELETED]
2010年 5月 17日 (月) 02:01:22 JST
渡辺茂昭です。
休日にもかかわらず、さっそくの回答ありがとうございます。
>小林 (koichik) です.
>
>Date: Sun, 16 May 2010 17:54:26 +0900
>From: 渡辺茂昭 <[E-MAIL ADDRESS DELETED]>
>To: [E-MAIL ADDRESS DELETED]
>Subject: [Seasar-user:19756] 【S2JDBC】Whereクラスのブール型の変換
>
>> さて、今回ですが1つ確認させてください。S2JDBCのComplexWhereを使用して、
>> SQL変数をバインドするとき、対象となるエンティティ(もしくはテーブルか)
>> のフィールドがブール(テーブル上はTinyInt(1))の場合、実際発行するSQL文
>> の該当する条件が'true'もしくは'false'(文字列リテラル)となっているようで
>> すが、これは仕様なのでしょうか?
>
>いいえ.
>Boolean のプロパティならそのまま PreparedStatement#
>setBoolean() を使ってバインドします.
>Oracle の場合は 0 または 1 の数値で setInt() しますが,
>MySQL であればそのまま setBoolean() が使われます.
やっぱりそうですか、SqlLog#getLast()でみると条件節の該当部分が
「xxxFlag='true'」となっていたもので、質問してみました。では、こちらで実
装しているコードに何か不備がありそうですね。再度精査してみます。
>
>文字列リテラルになっているというのはどのように
>確認しましたか?
>
>> 該当の部分のコードの一部を載せておきます。
>>
>> else if (field.getType().equals(Boolean.class)) {
>> if (StringUtil.isEmpty(otdo.toString())) continue;
>> ret = ret.eq(fname, Boolean.valueOf(otdo.toString()));
>> }
>
>これがなんのコードなのかわからないし,具体的な
>問題がなんなのかもわかりません.
>
すみません、端折りすぎましたね。エンティティの該当フィールドがBoolean
のときにBooleanを代入している、というところのコードを転記したつもりだっ
たのですが....
>
>--
><component name="koichik">
> <property name="fullName">"Koichi Kobayashi"</property>
> <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
> <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
></component>
>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内