S2Dao 1.0.37 リリース!
今回のリリースで、メソッド名の末尾に UnlessNull がついていると null ではないフィールドのみ UPDATE 対象となるそうな。
こんな感じかな?(実際に動かしたわけではありません)
public class Hoge {
private Integer id = null;
private String name = null;
private String password = null;
public void setId(Integer id) {
this.id = id;
}
public Integer getId() {
return this.id;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return this.name;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return this.password;
}
}DAO
public interface HogeDao {
static final Class BEAN = Hoge.class;
void update(Hoge);
void updateUnlessNull(Hoge hoge);
}テストプログラム
Hoge hoge = new Hoge();
hoge.setId(new Integer(1));
hoge.setName("foobar");
hogeDao.update(hoge); // (1)
hogeDao.updateUnlessNull(hoge); // (2)発行されるSQL
(1) UPDATE Hoge SET id = 1, name = 'foobar', password = null WHERE id = 1 (2) UPDATE Hoge SET id = 1, name = 'foobar' WHERE id = 1
助かるなぁ。これがないと、SELECT を一回余計にやらなければならないことがあるんだよねぇ。さっそく今作っているシステムのやつをアップデートすることにしよう。