SpringでのHibernateセッションの "lifecycle"を正しく行う方法は?Spring + Hibernateセッションライフサイクル
SessionFactory
はSpringによって自動的に作成され、Glassfish接続プールからDB接続を取得しています。現時点では、私はSessionFactory.getCurrentSession()
でHibernateセッションを取得しています。その後、私はトランザクションを開始し、仕事をし、最後にcommit()
またはrollback()
をします。 disconnect()
、close()
、flush()
などの他のアクションをいつでも実行する必要がありますか。接続がプールに正しく返されるようにするか、既にSpringによって自動的に行われているすべての処理ですか?
これらの方法がたくさんありますが、いつ何をすべきかを理解するために、今私はちょっと混乱しています。誰かが正しい方向を指しているかもしれません。
私のシステムではSessionFactoryがシングルトンBeanとして設定されているため、決して閉じることはありません。 – Laimoncijus
@Laimoncijus:SessionFactoryはデフォルトではシングルトンです。回答はそれに従って修正されました。それを確認してください –
だから、あなたはsessionfactoryシングルトンを設定する必要はありません。また、この回答を確認してください:http://stackoverflow.com/questions/8523332/close-opened-hibernation-sessions-if-exist/8530891#8530891 –