(Hibernate)Session.close()和releaseSession(Session)之间的区别

时间:2013-07-29 15:00:42

标签: java hibernate session spring-mvc

我在这个项目中使用了Hibernate和Spring MVC。

我有这段代码:

...

int count = (Integer) this.getSession().createSQLQuery(sql).list().get(0);

this.getSession().close();

return count;

我应该使用this.getSession.close(),还是应该使用releaseSession(this.getSession()) ??

我很难理解这两种方法之间的区别..

谢谢!

1 个答案:

答案 0 :(得分:2)

HibernateDaoSupport是Spring框架提供的支持,当调用releaseSession()时,它只会终止hibernate会话,而不是事务。但是当你执行hibernate的session.close()时,它也会终止事务。我认为您不需要自己处理这些交易。让春天来处理它们。 @Transactional会处理它们。只需在需要的地方定义它。