Я использую Hibernate и Spring MVC для этого проекта.(Hibernate) Разница между Session.close() и releaseSession (Session)
У меня есть этот кусок кода:
...
int count = (Integer) this.getSession().createSQLQuery(sql).list().get(0);
this.getSession().close();
return count;
я должен использовать this.getSession.close()
, или я должен использовать releaseSession(this.getSession())
??
I'm, имеющие проблемы, понимающие разницу между этими двумя методами ..
СПАСИБО!
Откуда берутся эти магические методы 'releaseSession'? –
http://static.springsource.org/spring/docs/1.2.x/api/org/springframework/orm/hibernate3/support/HibernateDaoSupport.html#releaseSession(org.hibernate.Session) –
Хорошо, тогда есть ваш ответ: _Закройте данный сеанс Hibernate, созданный через SessionFactory этого DAO, ** если он не связан с потоком ** (т. Е. Не является транзакционным сеансом) ._ (выделено мной). Метод 'close' будет ** всегда ** закрывать' session'. Метод 'releaseSession' только закрывает' session', если это необходимо. Если вы закрываете сеанс, связанный с потоком, тогда у вас будут проблемы в другом месте вашего приложения, так как Spring не ожидает, что он будет закрыт. –