[Seasar-user:4937] Re: [S2Dao]update 文の更新項目の動的な制御について

Yasuo Higa [E-MAIL ADDRESS DELETED]
2006年 10月 26日 (木) 11:06:50 JST


ひがです。

> 瀧と申します。
> 
>  S2Daoのupdate文についてご意見を頂きたくメールしました。
> 
>  S2Daoはupdate文もSQLを自動生成する機能がありますが、
>  実際には更新したくない項目が更新パターン毎あります。
> 
> update.sqlの例
> -------------------------------------
> UPDATE USER_INFO
> SET 
> /*IF model.ADDRESS != null*/
>  ADDRESS=/*model.ADDRESS*/,
> /*END*/
> /*IF model.TEL != null*/
>  TEL=/*model.TEL*/,
> /*END*/
> /*IF model.EMAIL != null*/
>  EMAIL=/*model.EMAIL*/,
> /*END*/
>  UPD_DT = SYSTIMESTAMP                  ←この行があるから助かっている
> WHERE 
>  USER_ID = /*model.USER_ID*/
> AND TIMESTAMP = /*model.TIMESTAMP*/;

Nullじゃないプロパティだけ更新したいということなら、
まもなく、UnlessNull更新機能が追加されます。

@UnlessNull
int update(Model model);

のように記述するとnullじゃない項目のみ更新します。
定数アノテーションだと

public static final boolean update_UNLESS_NULL = true;
int update(Model model);

アノテーションの名前だとか、もっと良いアイディアが
あれば募集します。

個人的には、updateのメソッド名がUnlessNullで
終わっていたらでも良い気がするのだけど。

int updateUnlessNull(Model model);

Yasuo Higa
The Seasar Project



Seasar-user メーリングリストの案内