库里有记录,但HQL就是查不出结果。我把条件“where t.name='熊超'”去掉就可以查出结果,真不理解! 
大家帮忙分析下写的是不是有问题,也没报错。 
代码: 
public ActionForward toUpdate(ActionMapping mapping,ActionForm form, 
HttpServletRequest request,HttpServletResponse response){ 
List list=(List)request.getAttribute("list"); 
if(list==null){ 
list=(List)infoDao.find("from UserInfo t where t.name='熊超' order by t.name"); 

request.setAttribute("list",list); return new ActionForward("/toUpdate.jsp"); 
 
 

解决方案 »

  1.   

    可能是Java和sql之间编码的问题,建议将name作为参数传入,而不是直接写到hql中
      

  2.   


    from UserInfo t where t.name='熊超' order by t.name
    order by t.name什么意思??既然查name=熊超  还要oeder by t.name??
      

  3.   

    这是测试看查不查的出结果。t.name应该是等于变量的
    原本是: “from UserInfo t where t.name='"+name+"' order by t.name"
      

  4.   

    把name做为参数传过来确实可行。但我的参数是多个,就是查询的条件,输入就有,没输入就没有。
    那该怎么弄啊?
      

  5.   

    首先判断Hibernate是否查询,你的Hql语句没有问题,估计出问题的是数据库中没有‘熊超’这个人。
    list=(List)infoDao.find("from UserInfo t where t.name='%熊超%' order by t.name"); 
    然后判断是否查出
    System.out.println(list.size());
      

  6.   

    去后台看看翻译过来的sql是什么吧