[Seasar-user:16528] Re: [S2JDBC] 排他制御について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 12月 17日 (水) 15:00:52 JST
小林 (koichik) です.
Date: Wed, 17 Dec 2008 13:02:48 +0900
From: "IZUNO Tadashi" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:16522] Re: [S2JDBC] 排他制御について
> ではサロゲートキーを使用していない場合、以下のケースでは排他制御は無理ということですよね。
>
> >1.新規レコードを作成
> >2.そのレコードをAとBの画面で表示。
> >3.A画面でレコードを物理削除
> >4.A画面で同じキーで新規レコードを作成
> >5.B画面で更新
>
> なにか対処方があればヒントをいただけるとありがたいです。
insert するエンティティのバージョンカラムに
タイムスタンプ (long 値) を設定すればよいかと.
Entity e = new Entity();
e.version = System.currentTimeMillis();
...
jdbcManager.insert(e).execute();
version フィールドの初期値をタイムスタンプに
してしまってもいいかも.
public class Entity {
...
@Version
public Long version = System.currentTimeMillis();
}
insert 時,version プロパティの値が null または
0 以下の場合は初期値として 1 が設定されますが,
1 以上の場合はそれがそのまま version カラムの
初期値になります.
Date: Wed, 17 Dec 2008 13:54:05 +0900
From: Yasuo Higa <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:16523] Re: [S2JDBC] 排他制御について
> 今回、@VersionでTimestampサポートも必要だということがわかりました。
> S2JDBC自体でTimestampサポートを検討したいと思います。
Timestamp 型をサポートしなくても大丈夫じゃ
ないかなー.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内