この記事の主な研究は、次のようにセッションでの冬眠の閉鎖です。
学生学生= new Student(); Student.setName( "Jan"); Student.Setage( "22"); Student.setAddress(「Zhaoqing City、Guangdong省」);セッションセッション= hibernateutil.getSessionFactory()。getCurrentsession(); session.begintransaction(); SESSION.SAVE(学生); session.flush(); session.getTransaction()。commive();
1。getCurrentssession()とopensession()の違いは何ですか?
getCurrentSession()で作成されたセッションは現在のスレッドにバインドされ、 openSession()で作成されたセッションはgetCurrentSession()で作成されたセッションは、コミットまたはロールバック時に自動的に閉じられますが、 openSession()で作成されたセッションは手動で閉じる必要があります。 2。getCurrentsession getCurrentSession()次の構成をhibernate.cfg.xmlファイルに追加する必要があります。
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.current_session_context_class">jta</property>
openSession()とgetCurrentSession()の違いと相関は何ですか?
SessionFactoryが開始されると、Hibernateは構成に応じて対応するCurrentsessionContextを作成します。 getCurrentSession()が呼び出されると、実行される実際の方法はCurrentSessionContext.currentSession()です。 currentSession()が実行されると、現在のセッションが空の場合、cruerentsessionはsessionfactoryのオープンセッションを呼び出します。したがって、 getCurrentSession()は、Java EEのセッションを取得するためのより良い方法です。
多くの場合、 session is close();その理由は、hibernate.cfg.xmlで設定したためです
<プロパティ名= "hibernate.current_session_context_class">スレッド</property>
システムはcommit();実行した後。この時点で、セッションを手動で閉じると、もちろんエラーが示されます。
上記は、セッション中のHibernateのクローズドインスタンスの分析に関するこの記事のすべての内容です。誰にとっても役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!