[Seasar-user:10089] [S2Dao] 行ロック(FOR UPDATE)について
PPOI
[E-MAIL ADDRESS DELETED]
2007年 8月 23日 (木) 22:33:00 JST
PPOIです。
S2Dao について質問です。
エンティティの更新処理を含む処理の場合,更新前に対象行を FOR UPDATE を
つけて SELECT することで行ロックを設定するというのが一般的だと思うのです
が,これを S2Dao で実現する場合,どのように実装するのが一般的なのでしょ
うか?
とりあえず現状で私が思いつくのは以下の3パターンです。
1. FOR UPDATE で SELECT する SQL ファイルを用意する。
2. Query アノテーションで FOR UPDATE を記述する。
3. DBFlute を使用する。
1は,検索条件そのものは通常の SELECT と変わらないにも関わらず自動生成
される SQL と同じような SQL を手動で記述しなければならないので,あまり気
持ちが良くありません。
2についても,アノテーションで指定する追加 SQL が ORDER BY で始まらない
場合は WHERE 句が自動生成されないため,ORDER BY 句または WHERE 句を自分
で記述した上で FOR UPDATE を記述する必要があり,やはり気持ちが良くありま
せん。
3は過去に案件で使用したことがあるのですが,現状,DBFlute は複数DBに対
応するアプリケーションを開発するのが難しいため,出来れば利用を避けたいと
思っています。
とりあえず今は2のパターンで逃げてみたのですが,もっと良い方法があれば
是非アドバイスを頂きたく,よろしくお願いいたします。
なお,現在利用している環境は以下の通りです。
JDK 1.5.0_12
S2Container.Java 2.4.17
Teeda 1.0.10
S2Dao 1.0.46
PostgreSQL 8.2.4
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
PPOI
E-mail: [E-MAIL ADDRESS DELETED]
Key fingerprint: 6F7E 2FED 72A7 C84C 9E5A 2EAC 6850 E1DF 0921 CAFB
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Seasar-user メーリングリストの案内