日期:2014-05-19  浏览次数:20926 次

Hibernate中session.load()方法报错
Java code
Session session = sessionFactory.openSession();        
Transaction transation = session.beginTransaction();        
//获取需要修改的用户
Employee emp = (Employee)session.load(Employee.class, 2);


如果我只有直接写int类型,就会报错,但是如果更改为Integer类型的实例就可以,代码如下

Java code
Session session = sessionFactory.openSession();        
Transaction transation = session.beginTransaction();        
//获取需要修改的用户
Employee emp = (Employee)session.load(Employee.class, new Integer(2));


为什么会出现这样的情况?不是可以自动拆箱装箱的吗?我用的jdk 是1.7的

------解决方案--------------------
把异常贴出来呗

------解决方案--------------------
程序没有直接在eclipse里显示语法错误,那说明自动拆装箱是ok的。
但具体到在hibernate中的操作,那要看你引用的hibernate版本本身是否支持自动拆装了。
应该是你的hibernate本身不允许这么做,所以你才必须要写成对象类型才能进行查询,这和jdk已经无关了
------解决方案--------------------
用int试了一下,好用。
LZ最后把异常贴出来
------解决方案--------------------
探讨

引用:

程序没有直接在eclipse里显示语法错误,那说明自动拆装箱是ok的。
但具体到在hibernate中的操作,那要看你引用的hibernate版本本身是否支持自动拆装了。
应该是你的hibernate本身不允许这么做,所以你才必须要写成对象类型才能进行查询,这和jdk已经无关了


程序是有包语法错误的在load那报错了
我的Hibernate是3.3……

------解决方案--------------------
LZ的JDK不支持自动拆装箱
------解决方案--------------------
当然要用Integer了。。