2009-11-05 25 views
6

私は、NHibernateを使って新しいアプリケーションを使ってデータベースのパフォーマンスの問題を研究することに夢中になりました。私はいくつかのテーブルでNHが行の挿入を行い、まったく同じデータを持つ同じ行の更新が続いていることに気づいた。これまでに収集したことは、多対1の関係が定義されている表に対して挿入後の更新が行われたことです。NHibernateのInsert後にUpdateを抑制することはできますか?

いずれにしても、NHの数字はデータが同じで、余分な更新を抑制すると予想していました。この特別なアップデートを一切抑止する方法はありますか?

+0

コード?挿入後のすべての列の更新は正常ではありません。 – dotjoe

答えて

6

多対1の関連付けで双方向の関係があるようです。

この問題の解決方法は、関係の1対多の側にinverse="true"を追加することです。 Here is an example

挿入は、子がデータを保存することによって実行されます。更新は、親がデータベース内の子レコードの親IDを設定することによって実行されます。関係が単方向であった場合、最初の挿入はparentIdを持たず、更新が必要になります。双方向関係では、あなたが説明するように更新は余計です。 inverse="true"は、子供に関係を維持する責任があることを親に伝え、余分な更新を防ぎます。

+3

-1これは非双方向関係で発生するためです。 – BradLaney

関連する問題