13

私のタイトルが説明したように、私はAuto自分のアプリケーションで休止状態のフラッシュ モード メカニズムを使用しています。したがって、休止状態の永続オブジェクトのデータを変更すると、データベースに自動的に反映されます。私はこれをしたくありません。そこで、代わりに FlushMode を使用する解決策を見つけましたCommit

だからここに私の実際の質問があります:

  • Commitの代わりにフラッシュモードを使用する方が良いAutoですか? と
  • ドキュメントからのこのステートメントの意味は何ですか?

    クエリが古い状態を返さないようにするために、クエリの実行前にセッションがフラッシュされることがあります。

http://docs.jboss.org/hibernate/orm/3.5/javadoc/org/hibernate/FlushMode.html

4

2 に答える 2

10

Hibernate (および JPA) は、永続オブジェクトへの変更を自動的に検出してデータベースに保持するように設計されています。「保存」操作はありません。

保存したくない場合は、切り離されたオブジェクトを使用する必要があります。a を使用しStatelessSessionてそれらをロードするか、オブジェクトをロードした後に detach を呼び出します。これにより、それらが自動的に保存される監視から削除されます。

フラッシュ設定をいじらないでください。後で頭痛の種になるだけです。

于 2015-01-23T17:53:50.190 に答える