关于Hibernate里的Session.get(Class clazz, Serializable id)方法的疑问

本人写了一个根据数据库id值获取某行记录的方法:
代码
static User getUser(int id) { 
  Session session 
= null
  
try { 
    session 
= HibernateUtil.getSession(); 
    User user 
= (User)session.get(User.class, id); return user; 
  }
finally { 
    
if(null != session) {
      session.close();
    }
  }
 } 

 我的意思很明确, 就是根据用户传入的id值来获得某行的记录信息.
当写完以上代码后, MyEclipse却出现了一个错误提示: 它说我的 id 应该为Serializable类型, 而不应该是int类型的.
我晕, 那我这段代码岂不是废了?
麻烦大家帮我看看出错在什么地方, 谢谢!

 

 

可能是JDK版本问题,你改一下最新的版本,如果不行的话,就这样写:
  User user = (User)session.get(User.class, new Integer(id));
这样就可以了!

 

另外,说一下,Serializable是序列化接口,基本数据类型都实现了此接口,如:Integer,Double,String等,放入一个Serializable类型的值作为主键,这样做的好处是,无论主键是自增长型的(如:int),还是String型的都可以获取到对象!

 

User user = (User)s.get(userClass,iid); //提示说get方法错误
这个地方的iid只能接受一个对象,你的iid是基本数据类型不是数据对象,改为:
iid改为 new Integer(iid)

posted @ 2010-01-30 10:02  Talo  阅读(2663)  评论(0编辑  收藏  举报