0

HibernateSessionManagerTapestryから取得したセッションをいつ閉じる必要がありますか?

コードの一部。HibernateSessionManagerオブジェクトを扱ういくつかのメソッドを考えてみましょう:

public void foo(final HibernateSessionManager hsm) {
    Session session = hsm.getSession();

最初のケース: セッションは DB からデータを取得するためだけに使用されます:

session.createQuery("from SomeTable ... blablabla").list();

session( session.close();) を手動で閉じる必要がありますか?


2 番目のケース: セッションは結果の保存/更新にも使用されます。

session.saveOrUpdate(obj);

object:だけcommitで十分ですか、または私も行う必要がありますか?hsmhsm.commit();session.close();

4

1 に答える 1

1

私はすでにここに答えました。

他の部分に答えると、 を使用している限り、タペストリー休止状態によってセッションを閉じることを心配する必要はありませんHibernateSessionManager

try {
   do_stuff(hibernateSessionManager.getSession());
   hibernateSessionManager.commit();
}catch(Exception ex){
   hibernateSessionManager.abort();
}
于 2013-03-21T15:07:11.737 に答える