用Hibernate+Spring读数据库,为什么会产生下面这个异常
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not load an entity: [com.team2.shopcart.vo.User#1]
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
at org.hibernate.loader.entity.EntityLoader.loadByUniqueKey(EntityLoader.java:85)
at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:1649)
at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:608)
at org.hibernate.type.EntityType.resolve(EntityType.java:382)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:120)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3049)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:399)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557)
at org.hibernate.type.EntityType.resolve(EntityType.java:379)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:120)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2213)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at com.team2.basedao.impl.BaseDaoImpl.findAll(BaseDaoImpl.java:135)
at com.base.test.BaseDaoImplTest.findAll(BaseDaoImplTest.java:68)
at com.base.test.BaseDaoImplTest.main(BaseDaoImplTest.java:27)
Caused by: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:2796)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:2827)
at com.mysql.jdbc.PreparedStatement.setInt(PreparedStatement.java:2778)
at org.hibernate.type.IntegerType.set(IntegerType.java:41)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:116)
at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1707)
at org.hibernate.loader.Loader.bindParameterValues(Loader.java:1678)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
... 37 more即使我获取一个表里的全部数据,没有参数传递,为什么还会有Parameter index out of range
大家帮下忙,感激不尽
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not load an entity: [com.team2.shopcart.vo.User#1]
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1874)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
at org.hibernate.loader.entity.EntityLoader.loadByUniqueKey(EntityLoader.java:85)
at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:1649)
at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:608)
at org.hibernate.type.EntityType.resolve(EntityType.java:382)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:120)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3049)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:399)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557)
at org.hibernate.type.EntityType.resolve(EntityType.java:379)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:120)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2213)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at com.team2.basedao.impl.BaseDaoImpl.findAll(BaseDaoImpl.java:135)
at com.base.test.BaseDaoImplTest.findAll(BaseDaoImplTest.java:68)
at com.base.test.BaseDaoImplTest.main(BaseDaoImplTest.java:27)
Caused by: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:2796)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:2827)
at com.mysql.jdbc.PreparedStatement.setInt(PreparedStatement.java:2778)
at org.hibernate.type.IntegerType.set(IntegerType.java:41)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:116)
at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1707)
at org.hibernate.loader.Loader.bindParameterValues(Loader.java:1678)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
... 37 more即使我获取一个表里的全部数据,没有参数传递,为什么还会有Parameter index out of range
大家帮下忙,感激不尽
解决方案 »
- 求帮助,在学习hibernate时遇到的问题,
- 最新的技术!
- 不显示删除回复显示所有回复显示星级回复显示得分回复 超链接下载 压缩包被直接打开问题
- MyEclipse+Hibernate一个实例出错,求助~~~
- 当ORACLE与SQLSERVER2005中存在一个结构完全相同的表,在JAVA中如何实现当更新sqlserver2005中的表时同时也更新ORACLE中的表,请各位大侠们帮忙!
- 装完TOMCAT6.0以后在地址栏中输入http://127.0.0.1:8080/就能显示那只猫。而输入http://localhost:8080/就不可以呢!
- 在配置tomcat数据源的时候,可不可以同时配四个数据库的连接???高手指教
- 求助,usb通信问题
- 关于hibernate时间得比较问题
- 请教各位大神,我刚入行,前台json传入后台解析再保存到数据库怎么操作?
- javaMail发送问题
- 关于事务的几个问题 谢谢大家!!!!
也有可能是驱动问题!楼主检查一下URL是否写正确!
仔细检查连接数据,
最好从新生成一下实体。有可能是实体与数据库数据不匹配。
无法装载实体Caused by: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
sql错误出现这种情况,hbm文件出错的可能性居大,楼主检查sql,看看啥问题,修改一下映射文件试试
多检查几遍
有两个学生student1和student2和两个班级class1和class2
class表和student表的映射关系为:
student→class == 多对一
表结构:class表:
id name
1 class1
2 class2
student表:
id stuname classid
1 student1 1 //表示student1是在class1这个班级中
2 student2 2 //表示student2是在class2这个班级中
那么在查询的时候,如果查询student表,就可以通过student.class.name来获取class表中的name字段值。
你的问题就出在class表中没有class2这条记录,但student表的classid有一条记录的值为2.错误的表结构:class表:
id name
1 class1student表:
id stuname classid
1 student1 1 //表示student1是在class1这个班级中
2 student2 2 //表示student2是在class2这个班级中,但是hibernate无法查找到classid=2的记录数,故会出现这个错误com.team2.shopcart.vo.User#1请查看User表,如果我没猜错,User表中应该没有ID=1的记录。
如果你配置什么的都没错的话,是不是你设置参数的时候setParameter(0, param);把这个0设置成了1??
jdbc中开始是1,hibernate中是从0开始的
Caused by: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
不过对于参数个数越界,应给也是问题,只是表面你没检查出来
还是先解决你的拼写问题吧……