java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
来源:互联网 发布:mac压缩文件 rar 编辑:程序博客网 时间:2024/05/03 19:42
java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!
at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterDescriptor(ParameterMetadata.java:79)
at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterExpectedType(ParameterMetadata.java:85)
at org.hibernate.impl.AbstractQueryImpl.determineType(AbstractQueryImpl.java:421)
at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:393)
at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:264)
at com.test.model.PersonTest.deleteQuery(PersonTest.java:144)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterDescriptor(ParameterMetadata.java:79)
at org.hibernate.engine.query.ParameterMetadata.getOrdinalParameterExpectedType(ParameterMetadata.java:85)
at org.hibernate.impl.AbstractQueryImpl.determineType(AbstractQueryImpl.java:421)
at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:393)
at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:264)
at com.test.model.PersonTest.deleteQuery(PersonTest.java:144)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
- String hql = "select count(*) from Friend where userID = ?";
- int totalCount = this.countByCondition(hql, userID);
在查询的时候出现了java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base错误,后来在网上查询了一下,得知JPA的问号索引是从1开始的,而HibernateTemplate是从0开始的。于是乎开始改写自己的代码,但错误依然存在,来来回回检查了很多遍还是没能消除错误。最后才得知,HibernateTemplate执行HQL语句时,HQL的语句中'?'号面是不带数字的,而使用JPA时,HQL语句的'?'是可以有数字的(是否必须有待考证),带数字的话一定是从1开始。
对于使用HibernateTemplate而言:
(1) 'from User where username = ? and password = ?'是正确的
(2) 'from User where username = ?1 and password = ?2'是错误的
发现和我的问题还是有些不对应,后来才发现是没有配置hbm文件在配置文件里。
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!
- java.lang.IndexOutOfBoundsException:Remember that ordinal parameters are 1-based!
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based解决
- Caused by: java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!
- ssh根据姓名查询的时候报错java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!
- Remember that ordinal parameters are 1-based!
- Remember that ordinal parameters are 1-based!
- Remember that ordinal parameters are 1-based!
- Remember that ordinal parameters are 1-based!
- Remember that ordinal parameters are 1-based!
- Remember that ordinal parameters are 1-based! Position: 1
- Remember that ordinal parameters are 1-based! (and I am)
- HTTP Status 500 - Remember that ordinal parameters are 1-based!
- String,StringBuffer与StringBuilder的区别
- 学生管理系统问题(三)
- struts2+json+zTree实现异步树
- web编程基础——javascript
- HDU 4331Image Recognition2012多校第四场A题(暴力枚举+小技巧)
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-base
- VisionMobile:手机商务模式的演变:从利润来源到发布渠道
- 【java中:包、类、字段、方法命名规则】
- CentOS 6.3中安装OpenCV2.3.1
- 10条嵌入式软件测试经典名言
- hpux11.31 磁带备份报错-no space on the LIF volume
- ie6中hover无效的解决方法
- java 加密解密
- Android 图形用户界面 之 绘图(一)