0

次のコードを取る:

MyEntity e = dao.getEntity(1);
e.setProp1(someVal);
e.setProp2(otherVal);

MyEntity eOld = dao.getEntity(1);

このようにすると、eが更新され(Hibernateがダーティを検出したため)、eOldは同じプロパティ値(prop1、prop2)aeを持ちます。このダーティエンティティの永続化された状態を取得する方法はありますか(データベースにあるように)?

4

2 に答える 2

2

試す:

<property name="defaultAutoCommit" value="false" />

または、別の方法で使用detachし、永続化する準備ができたら再接続します。

dao.detach(e);
...
e.setProp1("AnotherVal"); //not propatated to the database
dao.merge(cat);  // update 
于 2012-04-26T19:39:30.850 に答える
0

実際、私はすでに自分で解決策を見つけているかもしれません...

私はすでにeOldの削除を試みましたが、それ以降は実行されません。eOldを取得する前に、eを削除し、比較(監査用)後にeをセッションに再度アタッチ(マージ)する必要があります。とにかくうまくいくようです。

于 2012-04-26T19:55:15.063 に答える