kevin-go 2014-01-16 14:14 采纳率: 0%
浏览 3548

S2SH框架中用session.createQuery(hql)查询出异常.

本人搭了个s2sh的框架,在用session.createQuery(hql)查询的时候出现异常,起先我以为是session未获取到,后来验证session是获取到了的,传入的参数也是获取到了的,但是还是有异常.代码如下,里面做了大量的打印语句来验证对象是否为空.public User findUser(User user) {
if(user!=null){
Session session=this.getSession();
if(session!=null){
System.out.println("Good!获取到了session"+
"打开的吗?"+session.isOpen()+" 连接的吗?"+
session.isConnected()
);
String hql="from User user where id=?";
System.out.println("传入dao层的用户名是:"+user.getId());
Query query=session.createQuery(hql).setInteger(0, user.getId());
System.out.println("##########查询结束!#################");
List list=query.list();
if(list!=null&&list.size()==1){
user=(User) list.get(0);
System.out.println(user.getEmail());
}else{
System.out.println("user没查到");
user=null;
}
}else{
System.out.println("FUCK!session没获取到!");
}
}else{
System.out.println("dao层获得的user是空的.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
}
return user;
}

这是浏览器请求后控制台的打印:
Good!获取到了session打开的吗?true 连接的吗?true
传入dao层的用户名是:100000
这说明session是获取到了的,hql中的id也是获取到了的,但是再查询的时候就异常了,导致后面的System.out.println("##########查询结束!#################");语句没有执行,但是我在Test类中用这个方法却能查询到数据.
请问大家我该怎么继续调试.?

  • 写回答

2条回答 默认 最新

  • yangdd1205 2014-01-16 15:12
    关注

    可能是 第一次查询完成后session已经自动关闭了,后面的查询要手动打开session

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料