[seasar-dotnet:368] Re: S2Container.NET&S2Dao.NETについて

Yuji Horiguchi soprano7 @ gmail.com
2006年 11月 7日 (火) 12:36:08 JST


こんにちは、堀口です。

早速のお返事ありがとうございます。

Kazuya Sugimoto wrote:
>> ・S2Daoの更新とトリガについて
> トリガについては使用したことが無かったので、気づきませんでした。
> NotSingleRowUpdatedRuntimeExceptionは自動SQL生成を使った場合に発生しますので、
> トリガを使用する場合は、SQL属性やSQLファイルで更新SQLを記述するというのは
> どうでしょうか?

なるほど、NotSingleRowUpdatedRuntimeExceptionが発生するのは自動生成のと
きだけなんですね。
実は今はほぼ全てのテーブルに更新日というフィールドがあり、それを更新する
ためにトリガが入ってしまっているのですorz
もっとも、これはDaoでTimestampを利用すれば同様のことができそうですし、む
しろその方がよいかもしれません。
そうすればトリガを使用するのは一部になりますから何とかなるかもしれません。

ちなみに、私が排他制御をするときはUPDLOCK(OracleではFOR UPDATE でしょう
か)でSELECTして対象レコードがあることを確認してからUPDATEしています。
これは更新対象が1件あるいは少数だからこそできる方法で、更新対象が大量に
ある場合には向いてないかと思いますが。

アドバイスありがとうございました。

-- 
Yuji Horiguchi
soprano7 @ gmail.com


seasar-dotnet メーリングリストの案内