java.lang.Long cannot be cast to java.lang.Integer

在底层dao自己添加id=1
https://img1.mukewang.com/5cc162b80001ec1005360335.jpg

报错:java.lang.Long cannot be cast to java.lang.Integer
id对应的数据库的id,是不是这里定义为long,数据库的id不能用int啊!
不知道如何去排查这个错误!

还发现:数据库都查询了

DetachableCriteria(CriteriaImpl(com.pdcss.dbzx.survey.entity.SurveyProblems:this[][id=1]))
Hibernate: select this_.id as id1_10_0_, this_.analysis as analysis2_10_0_, this_.answer as answer3_10_0_, 
this_.bank_id as bank_id4_10_0_, this_.createtime as createti5_10_0_, this_.img as img6_10_0_, 
this_.problem_name as problem_7_10_0_, this_.type as type8_10_0_, this_.typeStr as typeStr9_10_0_ from survey_problems 
this_ where this_.id=?

但是为什么会报错?

https://img.mukewang.com/5cc162bd0001d69406850153.jpg

已经解决,数据库改成bigint,跟long对应,就ok了!


慕运维8079593
浏览 5095回答 3
3回答

跃然一笑

你使用的是什么数据库?你把参数(long id)换成(Integer id)。报这个错的原因的类型转换失败。long类型无法转换成Integer类型。

蛊毒传说

可以将id在方法里面转为Integer后在放入dc里面,String str = id.toString();Integer id1 = Integer.valueOf(str);或者Integer id1 = new Integer(str);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java