0

getHibernateTemplate().merge(obj)私はデータベースに永続化するために使用しますobj(トランザクションが完了したら)。私のコードは次のようになります。

Foo obj = getHibernateTemplate().merge(obj);

私のFooテーブル(に対応Foo class)にはバージョン列があります。Foo はバージョン管理されており、Hibernate はトランザクション (Spring によって管理される) の完了後にバージョンを更新します。

これで、トランザクションの後、db にはインクリメントされたバージョンが表示されますが、obj にはまだ古いバージョンが表示されます。バージョンはトランザクションが完了した後にのみ物理的に設定されることを理解しています。ここで obj を更新してmergeもう一度 ' ' を試行すると、スローStaleObjectExceptionされます (予期されます)。

質問: このオブジェクトを更新して最新バージョンを取得するにはどうすればよいですか? Merge が最新の更新されたオブジェクトを提供しないのはなぜですか。オブジェクトを再度ロードする必要がありますか?

4

0 に答える 0