我用HIBERNATE 进行用户登陆验证 如果用户名密码都正确就把该对象存到session中  但是取user的权限属性值时 老是是:257 而我数据库中的值是001  数据库中权限字段用的是tinyint类型   请高手指点session=HibernateUtils.getSession(); session.beginTransaction();
Query query=session.createQuery("from Userinfo as u where u.username=:username and u.pwd=:password");
query.setParameter("username", lf.getUsername());
query.setParameter("password", lf.getPassword());
List result=query.list();          if(result.size()==0){
           str="用户存在或密码错误";
           request.setAttribute("str", str);
          }else{
          Userinfo user=(Userinfo)result.get(0);
          request.getSession().setAttribute("user", user);
 
 System.out.println("用户ID是"+user.getUsername());
System.out.println("用户权限是"+user.getPower());
打印结果是:
           用户ID是bbb
           用户权限是257正确结果应该是 用户ID是bbb
               用户权限是1

解决方案 »

  1.   

    哎 在Project 里面Clean 了一下就不存在这个问题了  谁能帮我解释下吗  谢谢
      

  2.   

    应该不是clean操作解决的这个问题。你第一次执行时应该是正确的数据库数据,是不是什么地方设置了request.getSession()这个session里面的值。
      

  3.   

    clean一下就好了。一般这种情况是因为你的hbm.xml文件(src下)在修改后没有及时更新到build目录下造成的。所以每次修改完hbm.xml文件,记得clean & build 一下哦。