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

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器