只要在hql中出现call字符串,不论是以独立单词、还是以作为组合单词的一部分出现,hibernate都会抛出下列异常:
org.hibernate.HibernateException: ordinal parameter mismatch
at org.hibernate.engine.query.HQLQueryPlan.buildParameterMetadata(HQLQueryPlan.java:225)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:95)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
......
上网找了很长时间,也没有找到相关的错误分析
最后终于在源代码中找到了这个错误的源头
在org.hibernate.engine.query.ParameterParser类中有下列一段代码
public static void parse(String sqlString, Recognizer recognizer) throws QueryException{
boolean hasMainOutputParameter = sqlString.indexOf( "call" ) > 0 &&
sqlString.indexOf( "?" ) < sqlString.indexOf( "call" ) &&
sqlString.indexOf( "=" ) < sqlString.indexOf( "call" );
......
}
我们都知道hibernate3可以调用存储过程或函数,但是有一定的限制(具体可以查看hibernate官方手册)。
据我分析这段代码应该是用来分析字符串是否是调用存储过程或函数的语句。
解决方法:
1.不要在表或列中,出现"call"字样
2.用Criteria来代替hql语句
分享到:
相关推荐
由jbosstools创建xmll文件出现bug
NULL 博文链接:https://imp9527.iteye.com/blog/438677
NULL 博文链接:https://toshibasony.iteye.com/blog/708026
一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。 二、默认情况下(即没有配置连接...
Struts2+hibernate3+mysql+myseclipse 开发项目 常见bug
本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序。开发此程序的目的是为了验证框架技术在项目中的应用。本程序尽量包含了开发当中遇到的一些问题及解决方案。同时欢迎广大网友到作者的群内...
Hibernate Synchronizer 插件重大缺陷改正
一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。 二、默认情况下(即没有配置连接...
本下载包与书籍的实战篇紧密结合. 下载包中的程序是一个简明的示例论坛程序,按照循序渐进的原则,分为不同的步骤: 步骤1: ... * 修正了和webwork相关的一个中文bug v1.0 (2005.4.20) * 初始版本
1、本示例只是借花献佛,其实网上SpringMVC+...7、附带的另一个附件关于JPQL的学习资料,本示例只提供了CURD四个方法,其他复杂的数据库查询实现需要好好学习JPQL.pdf上的资料 8、写了那么多,希望大家能给我一分
一、Apche的DBCP在Hibernate2中受支持,但在Hibernate3中已经不再推荐使用,官方的解释是这个连接池存在缺陷。如果你因为某种原因需要在Hibernate3中使用DBCP,建议采用JNDI方式。 二、默认情况下(即没有配置连接池...
本程序是作者学习struts spring hibernate构架后为了练习开发的一个小程序。开发此程序的目的是为了验证框架技术在项目中的应用。本程序尽量包含了开发当中遇到的一些问题及解决方案。同时欢迎广大网友到作者的群内...
Bug Reports: Hibernate JIRA (preferred) hibernate-devel@lists.sourceforge.net Free Technical Support: http://forum.hibernate.org Commercial Support & Training: ...
论坛系统hibernate jsp hibernate 毕业论文项目
ssh开发基础jar包,无冲突
使用说明: 1、可以取消hibernate.cfg.xml中<property name="hbm2ddl.auto">create注释...3、添加pageSize设置功能 V1.1版本更新内容 1、实现日期范围查询 V1.0版本 1、初始版本。实现JSP+SERVLET+Hibernate基本分页
* 增加了对投票的图形显示 * 修正了和webwork相关的一个中文bug <br/>v1.0 (2005.4.20) * 初始版本 <br/>请访问http://www.redsaga.com/hibernate_book.html,检查此下载包的更新。
hibernate作为底层,通过关系配置,配置Oracle数据库中的EMP表,进行自连接。里面重要的是例子,经过测试的,无bug,放心调试。
我们也提供一个JIRA问题追踪系统,来搜集bug报告和新功能请求。如果你对开发Hibernate有兴趣,请加入开发者的邮件列表。(Hibernate网站上的用户论坛有一个中文版面,JavaEye也有Hibernate中文版面,您可以在那里交流...
我们也提供一个JIRA问题追踪系统,来搜集bug报告和新功能请求。如果你对开发Hibernate有兴趣,请加入开发者的邮件列表。(Hibernate网站上的用户论坛有一个中文版面,JavaEye也有Hibernate中文版面,您可以在那里交流...