[seasar-dotnet:1365] DBFlute とトリガーの相性について

Nakai [E-MAIL ADDRESS DELETED]
2009年 6月 5日 (金) 14:18:56 JST


お世話になっております。中井と申します。

トリガーが存在するテーブルにBhvのUpdate、Deleteを実行すると
Exceptionが発生してしまいました。

<環境>
Dbflute.Net 0.8.8.9
SQLServer2005


<トリガーの内容>
テーブルの更新履歴を保存する為、
「T_A」テーブルに対してInsert、Update、Deleteされたレコードを
「T_A_HISTORY」テーブルにInsertします。

「T_A_HISTORY」テーブルのカラムは「T_A」テーブルのカラム+「履歴タイプ(I,U,D)」+「挿入時刻」です。


<Exceptionの内容>
・Update時
	EntityDuplicatedException
{"The entity was Too Many! it has been duplicated. It should be the only one! But the updatedCount=2: entity={省略}"}

・Delete時
 EntityAlreadyUpdatedException
[EDAO0005]


更新の時、メッセージに「updatedCount=2」とあるのは、HISTORYテーブルにトリガーが挿入したレコードもカウントしているのでしょうか?

今のところ回避方法として、
・トリガーを削除
・ExBhvにInsertWithHistory、UpdateWithHistory、DeleteWithHistoryメソッドを
作成し、この中で「T_A_HISTORY」への登録を自前で行う

を考えているのですが、他によい方法があれば御教授頂けないでしょうか。

よろしくお願い致します。


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