BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #6839同步于 2012/5/26
Database机器人发帖

[心得]Hibernate 数据库反向生成DAO类 一对一检测的bug

zhihao
2012/5/26镜像同步0 回复
Exception in thread "main" org.hibernate.TypeMismatchException: Provided id of the wrong type for class hbn.Choose. Expected: class java.lang.Integer, got class java.lang.String at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:109) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906) at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:874) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:590) at org.hibernate.type.EntityType.resolve(EntityType.java:412) at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139) at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:877) at org.hibernate.loader.Loader.doQuery(Loader.java:752) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) at org.hibernate.loader.Loader.doList(Loader.java:2232) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129) at org.hibernate.loader.Loader.list(Loader.java:2124) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) at hbn.PeopleDAO.findAll(PeopleDAO.java:124) at extendHQL.ExtendPeopleDAO.main(ExtendPeopleDAO.java:25) select people0_.id as id2_, people0_.name as name2_, people0_.password as password2_, people0_.mail as mail2_, people0_.phone as phone2_, people0_.type as type2_, people0_.valid as valid2_ from bishe.people people0_ Exception i 这个是执行数据库表反向生成时执行一对一检测生成的DAO调用时显示的错误,取消一对一检测重新生成DAO类则不存在这个问题。在网上搜索了很久,都说的是传入的参数或者映射文件的字段类型和数据库字段的类型不一致造成的,但是这里不存在这个问题。Choose表主键是Integer型,映射文件也明确对应上了是Integer型。Hibernate利用反向工具生成的PeopleDAO类在调用它自己生成的findAll()方法直接抛出这样的异常。应该是Hiberntate本身的一个bug,如果有研究Hibernate的同学请分析下原因,也希望给遇到相同问题的同学提供一个解决的思路。以下附上数据库脚本。大家可以亲自试试
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。