[seasar-s2dao-dev:46] Re: 更新したプロパティのみをUPDATE文に含める
Hirotaka HONMA
manhole @ arksystems.co.jp
2006年 11月 24日 (金) 16:46:09 JST
本間@茅場町です。
on Fri, 24 Nov 2006 14:17:53 +0900
in [seasar-s2dao-dev:45] Re: 更新したプロパティのみをUPDATE文に含める
YOKOTA Takehiko <yokota @ arksystems.co.jp> wrote:
> > Emp emp = new Emp();
> > emp.setJob("MANAGER");
> > empDao.updateModifiedOnly(emp);
> >
> > できれば、ReadModifyじゃない方がうれしいかなと思いますが
> > (排他はTimestampやVersionNoがあるし)
> > これだと、ASPECTがかけられないんですよね・・・
>
> 同感です。newしたやつも、setterが呼ばれたのだけUPDATE対象にしたい
> ですね。
そうですね、これができると嬉しいのですが、問題は
- どう実現するか?
newしているのでランタイムのAspectは仕掛けられない。(コンパ
イルタイムのAspectならできるかも。)
また、DBFluteのようなコード生成アプローチでも可能。
もしくは、Entityを生成する機構をS2Dao側で提供するとか...
という点でしょうか。
newして更新する場合はupdateUnlessNullを、SELECT結果を更新す
る場合はupdateModifiedOnlyを、とDaoのメソッドを呼び分ければ
可能なのでしょうけれど、煩雑になりそうですし。。。
それに、そのEntityがnewされたものなのかSelectされたものなの
か、Daoを呼ぶクラスが知っていないとできませんし。
良い案あります??
(良い案が無ければ後回しということで)
---
本間 宏崇 /** Hirotaka HONMA */
manhole @ arksystems.co.jp
ARK Systems Co., Ltd. : 株式会社アークシステム
http://www.arksystems.co.jp/
seasar-s2dao-dev メーリングリストの案内