hibernate - HTTPSession 自动关闭而关闭休眠会话
问题描述
我遇到了一个问题,
当我关闭休眠会话时,httpsession 也会自动关闭。
示例代码供参考,
类 TestAction
public class TestAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = null;
String forward = "";
try {
//session validation
session = request.getSession(false);
if (session == null)
throw new InvalidSessionException("Unauthorized Access");
AuditDAO dao = new AuditDAO();
ArrayList list = dao.getAuditTrail(sc);
session.setAttribute("results", list.size());
forward="searchResult";
} catch (InvalidSessionException ise) {
}
return (mapping.findForward(forward));
}
}
类 AuditDAO
public class AuditDAO extends HibernateBase{
public ArrayList<AuditVO> getAuditTrail(SearchCriteria sc) {
try {
Query query = getSession().createQuery(
auditDetailMap.get(constructed query));
return query.list();
} catch (Exception ex) {
System.out.println(ex);
} finally {
closeSession();
}
return auditDetailList;
}
}
类 HibernateBase
public class HibernateBase {
private Session session1;
public Session getSession() {
try {
if (session1 == null || !session1.isOpen()) {
Context ctx = new InitialContext();
Object obj = ctx.lookup("HibernateSessionFactory");
SessionFactory sessionFactory = (SessionFactory) obj;
setSession(sessionFactory.openSession());
}
} catch (NamingException ex) {
System.out
.println("Failed get HibernateSessionFactory object from Context");
}
return session1;
}
public void setSession(Session session1) {
this.session1 = session1;
}
public void closeSession(){
if(session1!=null && session1.isOpen()){
session1.close();
}
}
}
注意:我没有关闭 httpsession。
关闭休眠会话后,我尝试从 httpSession 获取值我得到了异常..任何人都可以帮助我
解决方案
推荐阅读
- fortran - 在 Fortran 中获取 HDF5 文件名的长度?
- java - 在 Spring Boot 中使用 @ResponseBody 在浏览器上显示图像
- javascript - 为什么从表格单元格中获取的值在作为条件传递给嵌入对象数组循环的 IF/ELSE 语句中时不起作用?
- java - 多次连续调用同一方法而不重复方法名
- git - 如何使用用户/密码身份验证通过 go-git 克隆存储库?
- ios - 相关域和 Heroku
- json - 使用 Flutter FutureBuilder 迭代 JSON 中的对象数组
- java - 如何从 JComboBox 中的选定项目中提取特定信息?
- python-pptx - Python-pptx折线图标记透明度
- git - 拉取请求合并冲突问题 - 不显示当前主分支数据