[seasar-s2dao-dev:94] VersionNoやTimestampの値がnullだった場合の仕様について
kubo
jazzflute @ mbn.nifty.com
2007年 1月 3日 (水) 16:03:30 JST
久保です。
Entityに、VersionNoやTimestampのAnnotationを付与して
S2Daoに排他制御を自動で行ってもらう場合の話です。
VersionNo/TimestampのAnnotationを付与すると、
Dao#update()の引数のEntityのVersionNo/Timestampに値が
SetされているとUpdate文のWhere句に条件が付与されます。
ex) VERSION_NO = 3
現状、その引数のEntityのVersionNoがnullだった場合、
Update文のWhere句の条件は、VERSION_NO = null となり、
必ず0件更新になって、NotSingleRow...Exceptionが発生します。
(S2DaoのManualより)
> 更新時にTimestamp用のカラムの値にnullが設定されていると
> 比較に失敗するので注意してください。
とあるので、これはS2Daoの仕様となると思いますが、
この仕様の目的は:
Entityに排他制御のAnnotationを付けたからには、
VersionNo/Timestampの値を設定しない限り更新をできないようにする。
→排他制御の強制
ということでしょうか?
コミッタ間での認識を確認したいです。
--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
kubo <jazzflute @ mbn.nifty.com>
jflute <http://d.hatena.ne.jp/jflute>
株式会社ビルドシステム <http://www.buildsystem.co.jp>
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
seasar-s2dao-dev メーリングリストの案内