public User findAll1(String name,String pass) {
log.debug("finding all User instances");
try {
String queryString = "from User user where user.name = ? and user.pass = ? ";
Query queryObject = getSession().createQuery(queryString);
queryObject.setString(0, name);
queryObject.setString(1, pass);
return  (User) queryObject.list();??????????????
} catch (RuntimeException re) {
log.error("find all failed", re);
throw re;
}

}
根据hibernate自动生成的类,我用写了一个方法,但是经过测试类型转换错误,应该就是问号那儿?,但本人不知道怎么解决....请高手指点一下,谢谢

解决方案 »

  1.   

    return  (User) queryObject.uniqueResult()
    如果确定查询结果唯一的话就这样写吧
    list返回的是一个List
      

  2.   

    同1L,方法需要返回的是USER对象。而你返回的是list。
      

  3.   

    List list = queryObject.list();
    User user = (list.size()>0)? ((User) list.get(0)):null;
      

  4.   

    return  (User) queryObject.list();?????????????? 改为List<User> list ;
    try{
    list = queryObject.list();
    }catch (Exception e){
    list = null;
    }
    return list == null?null:list.get(0);
      

  5.   

    上面各位的意见我都试了,好像还是不行呢,总是抱的java.lang.NullPointerException哪个高手能不能给一个完整的方法啊,就照着这个方法写内容,我要返回的是实体...
     public User findAll1(String name,String pass);在此菜鸟谢谢大家
      

  6.   

    空指针异常,可能是你的list本身就是null,所以转换的时候就抛异常了
      

  7.   

    我也只是猜测。你可以检查一下list的大小。
    list.size()>0)? ((User) list.get(0)):null
      

  8.   

    getSession()为NUKK吧??
    你跟踪一下吧
      

  9.   

    如果list大小为0,就是说你没有查出任何数据。返回空就可以了。
      

  10.   

    如果你需要返回 User 那么用
    List list = queryObject.list(); 
    User user = (list.size()>0)? ((User) list.get(0)):null;
    要么,修改方法的返回类型为List
    List list = queryObject.list(); 
    return list;
      

  11.   

    你这行我认为有两个错误 首先方法需要返回的是USER对象。而你返回的是list
    另一个错误是有可能的,你应该判断下list是否为空 这个是有可能的错误 并不一定 希望能帮到你~
      

  12.   

    List list = queryObject.list(); 
    User user = (list.size()>0)? ((User) list.get(0)):new User();
      

  13.   

    你的空指针异常,有几个地方可以报,总之一条原则用对象时判断null就能避免这种异常