[Seasar-user:19757] Re: 【S2JDBC】Whereクラスのブール型の変換

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2010年 5月 16日 (日) 20:20:20 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() が使われます.

文字列リテラルになっているというのはどのように
確認しましたか?

>  該当の部分のコードの一部を載せておきます。
>  
> 	else if (field.getType().equals(Boolean.class)) {
> 		if (StringUtil.isEmpty(otdo.toString())) continue;
> 		ret = ret.eq(fname, Boolean.valueOf(otdo.toString()));
> 	}

これがなんのコードなのかわからないし,具体的な
問題がなんなのかもわかりません.


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