java - 我什么时候应该关闭从 Tapestry 中的 HibernateSessionManager 获取的 session ?

标签 java hibernate session tapestry

我什么时候应该关闭从 Tapestry 中的 HibernateSessionManager 获取的 session ?

一些代码。考虑一些处理 HibernateSessionManager 对象的方法:

public void foo(final HibernateSessionManager hsm) {
    Session session = hsm.getSession();
<小时/>

第一种情况: session 仅用于从数据库获取数据:

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

我必须手动关闭session (session.close();)吗?

<小时/>

第二种情况: session 也用于保存/更新结果:

session.saveOrUpdate(obj);

仅在 hsm 对象上commit就足够了:hsm.commit();,或者我也应该做session .close();?

最佳答案

我已经回答过here

要回答另一部分,您不必担心关闭 session ,因为只要您使用 HibernateSessionManager,Tapestry-hibernate 就会为您关闭 session 。

try {
   do_stuff(hibernateSessionManager.getSession());
   hibernateSessionManager.commit();
}catch(Exception ex){
   hibernateSessionManager.abort();
}

关于java - 我什么时候应该关闭从 Tapestry 中的 HibernateSessionManager 获取的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549638/

相关文章:

java - 如何在android中使用achartengine对齐到图表中心?

c# - Asp.net 中的 session 是否在网站用户之间共享?

Java:卡住 JFrame 上的组件

java - 找不到指定的 JDBC 驱动程序 "com.microsoft.sqlserver.jdbc.SQLServerDriver"类

java - Hibernate getCurrentSession 与异步 servlet 的行为

java - Spring Boot 。找不到类型为 'org.hibernate.SessionFactory' 的 bean

php - 无法使用密码保护页面/区域

php - 如何将 PHP session 与 REST 客户端应用程序一起使用?

java - Flink Kafka指标: How to get them

java - 我如何让 jsoup 工作?