在hibernate中的session.load(Class.class,Serializable)方法中,int参数为什么不能转为Integer被序列化

我用的是JDK5啊,为什么不是类型不匹配呢不是,我是说编译都编译不过去intid=1;session.beginTransaction();Useruser=(User)... 我用的是JDK5啊,为什么不是类型不匹配呢
不是,我是说编译都编译不过去
int id = 1;
session.beginTransaction();
User user = (User)session.load(User.class, id);
session.getTransaction().commit(); 提示让我Change type of 'id' to 'Serializable'
我主键是int类型,把id改为 new Integer(id) 就好了,那如果是还要写Id怎么让他不提示错误呢
展开
 我来答
_Echo_gw
推荐于2016-03-25 · TA获得超过104个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:113万
展开全部
hibernate把几乎所有的东西都看成对象,你建表的时候id虽然用的是int但在配置文件中生成默认的就是Integer类型,再比如bigint就是Long,可见他的对象概念是很强的。你看下load方法的声明,把鼠标放到load上应该有该方法声明的提示(一般的ide都可以的,别告诉你用的是记事本。。),该方法是需要一个可序列化的对象(实现了Serializable接口的)Integer就实现了该接口,而int没有。你要想深入了解可以多查看一下这方面的资料,如果只是想会用,那么你记得第2个参数一定要给一个实现了Serializable接口的对象
在天湖山弹吉他的米老鼠
2009-01-19 · TA获得超过2064个赞
知道小有建树答主
回答量:1546
采纳率:100%
帮助的人:1037万
展开全部
。。。。你先看看你主键是什么类型的
你改成session.load(User.class, new Integer(id));

你就非得使INT?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zfcdoudou
2009-01-17 · TA获得超过114个赞
知道答主
回答量:31
采纳率:0%
帮助的人:33.3万
展开全部
请你把部分代码和异常贴上来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式