0 0

struts+spring+hibernate整合3

我把struts+spring+hibernate整合后
在实现类里的一个方法
public User findUser(int userId) {
return getHibernateTemplate().load(User.class, userId);
}
怎么在load这个几字母的有红色波纹线
左边有个红色的x
我把鼠标放在红色的X,它给我的提示是:
The method load(class,Serializable)in the type HibernateTemplate
is not applicable for the arguments(class,int);
然后我把int userId改成Integer userId.对应的接口也改成Integer userId
它就不再报错了,,这是为什么?????我以前也用过int都没有提示报错....
是不是我少拷了些什么jar包还有文件呢??????
我不想改成Integer 怎么解决这个问题,,在此先谢过
2009年5月24日 20:12

2个答案 按时间排序 按投票排序

0 0

public User findUser(int userId) {
   return getHibernateTemplate().load(User.class, userId);
}
你这个方法写的有问题吧
getHibernateTemplate().load(User.class, userId);
返回的是一个Object类型的
是需要强转的
  return (User)getHibernateTemplate().load(User.class, userId);
你可以在
return (User)getHibernateTemplate().load(User.class, new Integer(userId));
这么做就不用改接口什么的了!

2009年6月08日 22:12
0 0

hibernate把几乎所有的东西都看成对象,你建表的时候id虽然用的是int但在配置文件中生成默认的就是Integer类型,再比如bigint就是Long,可见他的对象概念是很强的。你看下load方法的声明,把鼠标放到load上应该有该方法声明的提示(一般的ide都可以的,别告诉你用的是记事本。。),该方法是需要一个可序列化的对象(实现了Serializable接口的)Integer就实现了该接口,而int没有。你要想深入了解可以多查看一下这方面的资料,如果只是想会用,那么你记得第2个参数一定要给一个实现了Serializable接口的对象

2009年5月25日 13:21

相关推荐

Global site tag (gtag.js) - Google Analytics