[Seasar-user:12883] Re: [S2JDBC]JdbcManagerのwhereでnullと一致を条件にしたい

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 2月 15日 (金) 01:00:10 JST


小林 (koichik) です.

Date:    Thu, 14 Feb 2008 23:48:55 +0900
From:    "Tomato Kagome" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:12882] [S2JDBC]JdbcManagerのwhereでnullと一致を条件にしたい

> 現状のJdbcManagerでwhereにnullのプロパティを指定すると、
> NullPointerExceptionになるようなのですが、回避策はありますでしょうか。

SimpleWhere を使ってはいかがでしょうか.
SimpleWhere なら,パラメータの値が null の場合は
条件に加えられません.

> Hoge hoge = jdbcManager.from(Hoge.class).where("prop = ?", null);
> 
> 例えば上記の場合にwhereで生成されるSQLが"prop is null"になってくれるとありがたいです。

where(String) で渡される SQL はプロパティ名を
除いてそのまま実行するものなので,ちょっと
用途が違うかと.

SimpleWhere を使って

.where(new SimpleWhere().eq("prop", prop).isNull("prop", prop == null))

とやれば目的の 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 メーリングリストの案内