Java (Hibernate)Session.close()和releaseSession(会话)之间的差异
我在这个项目上使用Hibernate和SpringMVC 我有一段代码:Java (Hibernate)Session.close()和releaseSession(会话)之间的差异,java,hibernate,session,spring-mvc,Java,Hibernate,Session,Spring Mvc,我在这个项目上使用Hibernate和SpringMVC 我有一段代码: ... int count = (Integer) this.getSession().createSQLQuery(sql).list().get(0); this.getSession().close(); return count; 我应该使用this.getSession.close(),还是应该使用releaseSession(this.getSession()) 我很难理解这两种方法之间的区别 谢谢 H
...
int count = (Integer) this.getSession().createSQLQuery(sql).list().get(0);
this.getSession().close();
return count;
我应该使用this.getSession.close()
,还是应该使用releaseSession(this.getSession())
我很难理解这两种方法之间的区别
谢谢 HibernateDaoSupport是Spring框架提供的支持,当调用releaseSession()时,它只终止hibernate会话,而不是事务。但是当您执行hibernate的session.close()时,它也会终止事务。我认为你不需要自己处理这些交易。让弹簧来处理它们@我会处理的。只要在需要的地方定义它。这个神奇的
releaseSession
方法从何而来?那么你的答案是:关闭给定的Hibernate会话,如果它没有绑定到线程(即,不是事务会话),则通过这个DAO的SessionFactory创建。(重点补充)。close
方法将始终关闭会话
。releaseSession
方法仅在需要时关闭会话。如果关闭线程绑定会话,则应用程序中的其他地方将出现问题,因为Spring不希望它关闭。@BoristheSpider感谢您的回答,现在。。可以使用releaseSession(this.getSession())吗??