セッション内の休止状態のBeanセッターの動作について混乱しています。セッションでBeanフィールドを設定すると、HibernateはBeanがダーティであることを認識し、セッションを閉じると、これは保留中の更新であり、データベースにフラッシュされると思いました。
ただし、1つの休止状態セッション内でテストを実行し、そのIDでBeanをフェッチし、フィールドをtrueからfalseに変更してから、このフィールドがfalseであるすべてのBeanのリストに対してHQLクエリを実行しました。「ダーティ」なBeanは、セッターを呼び出したときにhibernateがすでにデータベースを更新したかのように結果セットに表示されました。次に、セッションを終了する前にsession.clear()を実行して、保留中の更新をキャンセルし、すべてのBeanを削除しました。これにより、セッター呼び出しのダーティな変更が効果的に破棄されると思いました。それでもデータベースをチェックしたところ、trueからfalseへの変更が記録されました。注:このセッション内でsession.flush()を呼び出すことはありません。
Beanセッターを呼び出すとすぐに、HibernateがデータベースUPDATE呼び出しを発行している必要があるようです。しかし、これは正しくないようですか?
アンディ