[Seasar-user:2603] S2DAOによる行ロックについて
sato
sato
2005年 9月 26日 (月) 19:48:52 JST
NSQ@佐藤です。
最近Seasarを使い始めたばかりで、まだ理解出来ていない所が多々あり試行錯誤
しながら使用させて貰っています。
そこで、S2DAOを使用した排他処理について質問させて下さい
S2DAOを使用してあるテーブルのある列をカウントアップしたいと考えています。
例えば以下のようなテーブルがあるとします。
UserTable
-----------------------------
ID
NAME
UPDATE_COUNT
-----------------------------
そこで「このテーブルに同一IDが存在しない場合はINSERT。同一IDが存在する場
合にはUPDATE_COUNTに1を加算する。」といった処理が行いたい場合に、
UPDATE_COUNTが最大であるレコードをFOR UPDATEで行ロックをかけた後に
UPDATE_COUNTを加算してUPDATEを行うという方法が考えられます。
テーブルにカラムを追加してVersionNoによる排他制御を行えば問題ないのです
が、テーブルへのカラム追加が行えない状況で、このような処理をS2DAOを使用
して行いたい場合にはどのようにすれば良いのでしょうか?
(ちなみに、S2DAOを使用してSQLファイルを準備して、FOR UPDATEを記述した
SQLを発行した場合にはエラーとなってしまいます。Oracleの場合、「ORA-
01002: フェッチ順序が無効です。」 )
=========================================================
株式会社 ネットスクエア
佐藤 慎也 <E-mail:[E-MAIL ADDRESS DELETED]>
〒733-0822
広島市西区庚午中4丁目6−1セントラルビル3F
http://www.net-squares.com/
TEL:(082) 507 - 6266
FAX:(082) 507 - 6267
=======================================================
<< ISO文書管理は弊社のISO-SQUAREにお任せ下さい。 >>
=======================================================
Seasar-user メーリングリストの案内