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