Java⇔RDBのMapping-Frameworkを語るThre Vol.3
■ このスレッドは過去ログ倉庫に格納されています
0730714
2005/07/15(金) 13:08:17大変参考になりました。
まとめ。トランザクションがある前提で・・・
1.あるセッション上でDBから取り出したEntityに変更が加わった場合、
トランザクション終了時に変更がDBに反映される。(FlushMode.AUTO)
2.Entityに対する変更をDBに適用したくない場合 -> FlushModeをNEVERにする
3.2で取り出したEntityを別のセッションでDBに反映させたい場合、Session#Update(Entity)する。
と、いうことですね。私の環境はSpringなので、上記の状況のFlushModeを適用したい場合
Springのトランザクションの設定で、
PROPARGATION_REQUIRED -> FlushMode.AUTO
PROPARGATION_REQUIRED,readOnly -> FlushMode.NEVER
と、すればOKと。
なので、Webで、表示、入力、更新確認は、readOnlyで設定(FlushMode.NEVER)。
DB更新が必要な場合は、readOnlyを指定しない(FlushMode.AUTO)、
変更の反映が必要なDetachedなEntityを更新する場合、update(ent)。
一時は真剣に、DAOから取り出すEntityは、
すべてcloneしてやろうかと思ってぞっとしてました。
あー、すっきり。ありがとうございました。助かりました。
■ このスレッドは過去ログ倉庫に格納されています