[Seasar-user:17786] Re: SELECT時のWHERE句へのBigDecimalの使用について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 6月 18日 (木) 20:20:20 JST


小林 (koichik) です.

Date:    Thu, 18 Jun 2009 19:21:18 +0900
From:    "TetsuyaSawada" <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:17785] SELECT時のWHERE句へのBigDecimalの使用について

> SELECT時に、S2Daoの自動生成のSQL文に対して、
> ARGSアノテーションを指定し、そのDaoの引数にBigDecimal型の
> 引数を与えています。
> 
> そのBigDecimal型の引数にnullを渡してSELECTしたところ、
> where句以降が消滅し、全件検索となってしまいます。

S2Dao の仕様ですね.

http://s2dao.seasar.org/ja/s2dao.html#AutoSelect

どのみち SQL では null = null は真ではないので,
もし検索条件から外されなければ結果は 1 件も
返ってこないことになります.

BigDecimal 型のカラムが null の行を検索したいなら
= ではなく is null を使う必要があり,それは 
SELECT 文の自動生成では対応していない (SQL ファイルを
使う必要がある) のではないでしょうか.


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