誰かが休止状態のセッションが何であるか教えていただけたらと思っていましたか?私は、基準クエリーが挿入すべきでないときに問題を抱えているようです。私はそれが汚いセッションに関連していると信じていますが、本当に汚いセッションが何であるかを知らないと、私は自分の問題を解決できません。また、どのように汚れたセッションを作成しますか?ありがとう。Hibernateのダーティセッションとは何ですか?
答えて
閉じているときに変更を保存します。データベースから読み取られたエンティティをキャッシュし、エンティティの変更や、エンティティの追加と削除を、セッションがフラッシュされるまで(つまり、保留中のすべての変更がデータベースに書き込まれるまで)キャッシュします。
一部の変更がまだフラッシュされていない場合、セッションはダーティとなります。したがって、汚れたセッションを持つことは完全に正常です。セッションは、トランザクションがコミットされる前にフラッシュされます。
これは、データベースにフラッシュされていない、メモリ内の管理された永続オブジェクトを変更したことを意味します。
基本的に、休止状態の背後にあるアイデアは、メモリ内の永続オブジェクトの状態がの状態であることです。管理オブジェクトに変更を加えた場合、休止状態は次の機会にデータベースに格納されます。永続化するつもりはない管理対象オブジェクトに対して、一時的な変更を加えるべきではありません。
hibernateは、すべての管理対象オブジェクトのメモリ内状態をデータベースにフラッシュします。その結果、クエリはアプリケーションの状態に対して正確です。
実際には、それよりも複雑です。Hibernateは、保留中の変更が実行されたクエリに影響を及ぼす可能性がある場合にのみフラッシュします。 –
オブジェクトを挿入するように指示する前に、クエリが挿入を実行しないようにするには、推奨される方法はありますか?私はsetFetchModeをマニュアルに使用していましたが、これは根本的な修正ではなく、バンドの補助的な修正であるかもしれません。 –
FlushModeは、トランザクションの終了前に挿入や更新をしたくない場合は、SessionFactoryでアプリケーション全体、おそらくCOMMIT、MANUALに変更できます。あなたが管理対象のエンティティに変更を加えていて、あなたがバンダイだけでなくデータベースに書きたくないのであれば、それは修正です。 – Affe
Hibernateでの不正なセッションは、オブジェクトをセッション内にロードしてから変更するときです。
セッションを開いて新しいオブジェクトを作成するとき。あなたがexplicitily任意の挿入/更新操作を呼び出していない場合であっても
は、Hibernateは汚いとしてセッションをマークし、セッションがHibernateセッションがキャッシュされ
単純な言葉でいうと、私たちが知っているように、ダーティデータはまだコミットされていないデータです。同様に、休止状態のダーティセッションにはまだコミットされていない変更されたデータが含まれています。
- 1. Hibernateのカスケードとは何ですか?
- 2. hibernateでExample.createとは何ですか?
- 3. Hibernate StaleObjectStateException、それはSpringのデータアクセス例外とは何ですか?
- 4. HibernateセッションメソッドsaveOrUpdate()とmerge()の違いは何ですか?
- 5. Hibernateでの関係所有者の意味は何ですか?
- 6. hibernateでの単一値の関連付けは何ですか?
- 7. Jdo/Hibernateの分離オブジェクト - とにかく彼らは何ですか?
- 8. HibernateとJDBCに関連するオブジェクト/リレーショナルマッピング(ORM)とは何ですか?
- 9. Terracotta-Hibernate-CacheとTerracottaで分散されたEhcacheの違いは何ですか?
- 10. Hibernateのsession.lockメソッドの目的は何ですか
- 11. EJB、hibernate、spring、JSFの違いは何ですか?
- 12. Hibernateプロパティhibernate.jdbc.factory_classのデフォルト値は何ですか?
- 13. Hibernate PostgreSQL自動インクリメントコードフィールドで何が混乱するのですか?
- 14. JPAはHibernateの外部IDジェネレータに相当するものは何ですか?
- 15. Spring MVC 3 with Hibernate - ModelAndViewで使用する私のモデルは何ですか?
- 16. HibernateバリデータはHibernate以外のコンポーネントとして使用できますか?
- 17. ORMメカニズムとしてHibernateを使用するWebアプリケーションのL1キャッシュとL2キャッシュの違いは何ですか?
- 18. Hibernateのバッグとリストの違いは何ですか?コレクションをマッピングするときに休止状態に
- 19. Hibernateのhbm2javaを使用するためのベストプラクティスは何ですか?
- 20. IPM.Noteとは何ですか?その用途は何ですか?
- 21. @privateとは何ですか?その用途は何ですか?
- 22. HHH000387 Hibernate警告は何を意味しますか?
- 23. HibernateとEhcacheではIDの変更が可能ですか?
- 24. JPaとHibernateを使用することはできますか?
- 25. hibernateアノテーションを使用していないものは何ですか?
- 26. Hibernateが更新句を生成する原因は何ですか?
- 27. TomcatのHibernateとEJB3.1 - これを可能にするためには何が必要ですか?
- 28. 小さなデスクトップアプリケーションに使用できるhibernateでサポートされているデータベースインワンファイルとは何ですか?
- 29. コピーオンライトとは何ですか?
- 30. @AttributeOverrideとは何ですか?
私はクエリがフラッシュをトリガしないようにするためには、基準クエリsetFlushModeを手動に設定する必要がありますか、修正? –
@Georgeオブジェクトに加えられた変更を保存したくない場合は、セッション外で変更を試みてください。 – richarbernal
セッション外でデータを保存する方法に関する追加情報が必要です。私はまだ冬眠するのにかなり新しいので、どのように始まってセッションに入っているのかは完全にはわかりません。 –