读书人

Hibernate中session.load()步骤报错

发布时间: 2013-09-11 16:26:28 作者: rapoo

Hibernate中session.load()方法报错

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


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

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……


如果真是语法错误的话,请确认eclipse中window->Preferences->java->Compiler , 里面的Compiler compliance level是不是选中了你JDK相应版本的compiler 。JDK7我没用过,但我想你这至少要选个1.5,才能保证自动拆装正确。
你先试试
[解决办法]
LZ的JDK不支持自动拆装箱
[解决办法]
当然要用Integer了。。

读书人网 >J2EE开发

热点推荐