Я использую объект сеанса Hibernate Interceptor для каждой операции CRUD в моем приложении Struts2, для этого я открыл сеанс с реализованным объектом Hibernate Interceptor.
Я хочу использовать только один сеанс Hibernate на один запрос во всем приложении Struts2.
Для этого я открыл сеанс Hibernate в методе Struts Interceptor intercept()
и закрыл сеанс Hibernate до завершения Struts Interceptor intercept()
.
Но в своем приложении я использовал вызовы «цепного действия». в то время я получаю Session close Exception
, если я пытаюсь использовать сеанс Hibernate в следующем цепном действии.
Пожалуйста, помогите мне, где я открываю и закрываю сеанс Hibernate Interceptor в приложении Struts2.
Перехватчик
public class MyStrutsInterceptor implements Interceptor {
public void init() {
// I created sessionfactroy object as a static variable
}
public void destroy() {
// I released the DB resources
}
public String intercept(ActionInvocation invocation) throws Exception {
Session session = sessionFactory().openSession(new MyHibernateInterceptor());
invocation.invoke();
session.close();
}
}
Реализованный класс Hibernate Interceptors
public class MyHibernateInterceptor extends EmptyInterceptor{
//Override methods
}
Когда я использую вызов цепочки действий, оператор invocation.invoke();
и session.close();
вызывается 2 раза.
i
, есть толькоI
; пожалуйста, запомните это для следующих вопросов ;) - person Andrea Ligios   schedule 23.10.2014