Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java (Hibernate)Session.close()和releaseSession(会话)之间的差异_Java_Hibernate_Session_Spring Mvc - Fatal编程技术网

Java (Hibernate)Session.close()和releaseSession(会话)之间的差异

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

我在这个项目上使用Hibernate和SpringMVC

我有一段代码:

...

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())吗??