public static void deleteYear(Years year)
{
Session session = sessionFactory.openSession();
session.beginTransaction();
session.delete(year);
// what is the best way to close session
session.getTransaction().commit();
//or : session.close(); ???
}
2
A
回答
4
ASAIK,這兩個是完全不同的操作。
sessionFactory.openSession()
:它打開一個session
:它從一個transaction,事務是工作的一個基本單位,其應該會成功或失敗的全部。
session.getTransaction().commit()
:它提交事務,意味着所有的事情發生在beginTransaction之間,並且這個調用將被持久化到數據庫。如果您沒有提交交易,那麼交易中發生的所有更改都將丟失。提交交易沒有關閉會話
session.close()
:關閉會話並釋放獲取的資源。
這意味着您需要撥打commit()
和session.close()
。
public static void deleteYear(Years year)
{
Session session = sessionFactory.openSession();
session.beginTransaction();
session.delete(year);
session.getTransaction().commit();
session.close();
}
0
更好的方式做會議記錄
Session sess=getSession();
Transcration tx=sess.beginTranscration();
//do something with session
sess.save(obj);
tx.commit();
sess.close;
,我推薦this。
0
這些是完全不同的兩件事。
COMMIT
進行到目前爲止發生在transaction
內的更改。
CLOSE
關閉會話,並且不再有權訪問該會話。
所以你可以在一起。
要記住的注意事項:關閉會話是不必要的;然而,最後一個會話應該是DISCONNECT
。
相關問題
- 1. 結束SSH會話關閉TMUX會議
- 2. 無法關閉我的會話Servlets
- 3. '沒有會話或會話關閉' 與JPA 2和EJB 3.1
- 4. PHP - 關閉會話
- 5. javax.jms.IllegalStateException:會話關閉
- 6. 關閉SSH會話
- 7. sshxcute會話關閉
- 8. org.hibernate.SessionException:會話關閉
- 9. Facebook會話關閉
- 10. 如何在瀏覽器關閉時結束會話
- 11. 如何在JSF中關閉瀏覽器時結束http會話
- 12. 如何在瀏覽器關閉時關閉vaadin會話但保持http會話?
- 13. 問題與休眠「會話關閉」
- 14. WCF與MSMQ DTC - 關閉NHibernate會話
- 15. 休眠會話關閉已關閉
- 16. 如何關閉SQLAlchemy會話?
- 17. 關閉會話在wordpress
- 18. 關閉瀏覽器或標籤時關閉Asp.Net會話
- 19. 在調試會話結束時關閉EntityManagerFactory
- 20. 我無法在關閉對話框中關閉對話框
- 21. GWT:如何在關閉瀏覽器時關閉會話
- 22. 會話/ EntityManager的關閉
- 23. 會話在每個WCF呼叫方案的會話中關閉
- 24. Spring Boot在關閉時關閉休眠會話 - 在完成@Async方法之前
- 25. 過程在關閉時不會結束
- 26. 會話cookie不會在瀏覽器上關閉關閉
- 27. PowerShell關閉公開會話
- 28. 關閉銷燬PHP會話
- 29. 休眠會話關閉
- 30. 關閉窗口會話?