永发信息网

java.lang.ClassCastException: java.lang.Float

答案:2  悬赏:40  手机版
解决时间 2021-02-14 23:23
  • 提问者网友:沉默菋噵
  • 2021-02-14 19:45
插入数据时总是抛出这种异常:
Hibernate: insert into TypeReport (RoomType, RoomNum, DayRoomNum, AllEarning, avgRoomPrise, TypeIP, TypeDate) values (?, ?, ?, ?, ?, ?, ?) select scope_identity()
java.lang.ClassCastException: java.lang.Float
at org.hibernate.type.IntegerType.set(IntegerType.java:41)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:83)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:60)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1826)
at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1803)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1950)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2405)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
at com.jb.y2t012.newgmf.dao.BaseDAO.save(BaseDAO.java:33)
at com.jb.y2t012.newgmf.tangman.dao.TypeReportDao.getReport(TypeReportDao.java:71)
at com.jb.y2t012.newgmf.dao.test.tangman.Test.test(Test.java:41)
请问是什么原因引起的?
最佳答案
  • 五星知识达人网友:一秋
  • 2021-02-14 20:32
原因很明显
java.lang.ClassCastException: java.lang.Float
at org.hibernate.type.IntegerType.set(IntegerType.java:41)
本身是Integer的类型,你传的是float,当然要报错了

更深层次的原因
查看你的数据库表项目的类型,查看hibernate配置文件中配置的
这个项目的类型
查看你的数据,为什么是float
全部回答
  • 1楼网友:酒醒三更
  • 2021-02-14 21:50
问题应该在 
integer intg = (integer)m.get(i, j); 
改成 
double intg = (double )m.get(i, j); 

java.lang.classcastexception: java.lang.double cannot be cast to java.lang.integer 
这个的意思就是类型转换出错。。把double 转成integer 了。不能转

那估计是别的地方报的错了。landusespace.java:29,29指的是行号。。自己研究研究吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯