您的位置:首页 > 编程语言 > Java开发

Expected: class java.lang.Long, got class java.lang.Integer异常处理

2009-10-07 14:42 513 查看

hibernate 3.1的查询,主要代码如下:

Project project = (Project)session.get(Project.class, 1);

ms sql 2005数据库中主键类型是bigint。

使用main方面测试,出现: org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.Long, got class java.lang.Integer

或者使用Junit测试,出现:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

错误原因:

session.get(Project.class, 1);方法中的参数1为Int类型,会被自动转换为Integer,而Project类中的ProjectId属性是Long,它对应的配置文件中也是java.util.Long,所以出现java.lang.Integer cannot be cast to java.lang.Long异常,

解决方法:

代码改成Project project = (Project)session.get(Project.class, 1L);在参数中给1加L,表示它是long类型,会自动转换成Long,或者Project project = (Project)session.get(Project.class, new Long(1));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐