首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > hibernate3的一个bug
【标  题】:hibernate3的一个bug
【关键字】:hibernate3,bug
【来  源】:http://blog.csdn.net/wangjian5748/archive/2007/04/18/1568925.aspx

hibernate3的一个bug

只要在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语句
 
关于WTK2.5:【上一篇】
用ANT写文件:【下一篇】
【相关文章】
  • 抓住了java version "1.6.0-rc"国际化的一个bug
  • Linux 下ioctl的bug?
  • 中奖了,发现VC6.0惊天大bug
  • vc中debug版程序正常但release版崩溃
  • UltraEdit的一个Bug
  • 有趣的个人发现:vista的BUG?(见图)
  • 全国计算机调试员大赛故障排除中的BUG
  • 这个bug错的很无语
  • Platform Manager cannot create the communication streams needed by the debugger.
  • 调试程序DEBUG命令说明
  • 【随机文章】
  • 获取帐号密码的简单方法<转>
  • PHP 缓冲的免费实现方法
  • FW : 創建子窗體---------Delphi文本编辑器的设计
  • JAVA一步一步的WEB编程关于JSP与JavaBean
  • 想这样吧把?球做成按钮,再把这个按钮放入
  • 实用Unix/Linux 命令
  • PHP脚本的10个技巧(8)
  • 配置Linux声卡,让Arch高歌
  • Server的Transfer和Response的Redirect
  • 看不懂strrchr(),请帮忙。
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.