[Seasar-user:9181] [S2DAO]プライマリーキーを変更したい時のの楽観的排他について

fujihara [E-MAIL ADDRESS DELETED]
2007年 7月 17日 (火) 15:37:49 JST


fujiharaです。

Churaプロジェクト(Teeda1.07+S2DAO1.0.43)で社内システムを
構築しています。

PostgreSQL 8.2.4でプライマリキーを変更したい場合のNersionNoによる排他方法
の更新SQLを知りたいのですが
つまりNotSingleRowUpdatedRuntimeExceptionが発生するようにしたいのですが
-----------テーブル-------------
CREATE TABLE Usrgrpassigned(
USR_GRP_ID INTEGER NOT NULL,
USR_ID CHAR(12) NOT NULL,
UPDATE_DATE TIMESTAMP  DEFAULT CURRENT_TIMESTAMP,
VERSIONNO INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY(
USR_GRP_ID,
USR_ID)
-------------------------------
上記のテーブルでプライマリーキー更新時に楽観的排他を
かけたいのですが
プライマリキー変更時には自動生成のSQLが使えないので自分でSQLを書きましたが
NotSingleRowUpdatedRuntimeExceptionが発生しません。
どの様なSQLを書けばできるのでしょうか?

-----------SQL-------------
UPDATE
    Usrgrpassigned
SET
    USR_GRP_ID = /*newUsrGrpId*/1,
    VERSIONNO = /*newVersionNo*/0,
    UPDATE_DATE = now()
WHERE
    USR_GRP_ID = /*oldUsrGrpId*/2 AND
    VERSIONNO = /*versionNo*/0 AND
    USR_ID = /*usrId*/'A1001'


----------------------------
上記のSQLでは指定されたUSR_IDでUSR_GRP_IDを
更新しようとしています。

以上、申し訳ありませんが宜しくお願いします。

-----------------------------------
 コンピュータマネージメント株式会社
 冨士原 孝之 / [E-MAIL ADDRESS DELETED]


Seasar-user メーリングリストの案内