本帖最后由 erbao_vip 于 2013-10-21 21:55:19 编辑

解决方案 »

  1.   

    isExistUser方法返回值把反省去掉
      

  2.   

    UserLogin     
      

  3.   

    你list.get(0)返回类型怎么会是UserInfo,不是Goods嘛
      

  4.   

    贴错了。这个才是= =@Override
    public List<UserInfo> isExistUser(String username, String password) { System.out.println("get user with name"); Query query = sessionFactory
    .openSession()
    .createSQLQuery(
    "select * from t_UserInfo u where u.username=?  and u.password=?");
    query.setParameter(0, username);
    query.setParameter(1, password);

    @SuppressWarnings("unchecked")
    List<UserInfo> list = query.list();
    System.out.println(list.size()); return list;
    }
      

  5.   

    UserAction代码发出来看一下
      

  6.   

    @SuppressWarnings("unchecked")
    这个不要加,我们写代码光清掉红点是不够的,黄点说明就是不规范的,也需要改。
    至于你的问题,你做个实验
      @SuppressWarnings("unchecked")//这个去掉,不要
            List<UserInfo> list = query.list();
            System.out.println(list.size());
    这一段,你输入
    query.list();//然后鼠标放到;后面
    同时按下
    Alt+Shift+l
    自动生成返回类型对象,你看看返回类型是不是UserInfo型的。。
      

  7.   

    select * from t_UserInfo u where u.username=?  and u.password=?")返回的是一堆 list数组 
    不是对应的类集合  
     应该是 from t_UserInfo u where u.username=?  and u.password=?" 很明显的错啊
      

  8.   

    createSQLQuery是查询原生态sql语句,里面的查询的应该是表名。结果是object数组。
    createQuery是hql查询,里面查询的是对象名。结果是实体数组。告诉你类型转换错误了。
      

  9.   

    上面的两种方法都对。
    1.    12楼的方法
    2.    去掉@SuppressWarnings("unchecked"),和所有 list后面跟的泛型
      

  10.   

    String sql = "select * from base_menu where resourceid in (select menu_id from BASE_MENU_ROLE where role_id in (select role_res_id from BASE_USER_ROLE where user_res_id = '"+user.getResourceId()+"'))";
    Session session = super.getSession();
    List<Object []> list=session.createSQLQuery(sql).list();
      

  11.   

    支持12楼。原生sql返回的list和hql的返回的不一样。
      

  12.   

    select * from t_UserInfo u where u.username=?  and u.password=?
    改成select u from t_UserInfo u where u.username=?  and u.password=?
    或from t_UserInfo u where u.username=?  and u.password=?
    你原来查出的类型是List<Object[]>,一条记录是你对象所有变量的数组集合