`
skyful
  • 浏览: 64241 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hibernate中ordinal parameter mismatch的BUG

阅读更多
问题

最近在调整hql语句时,发生一个莫名其妙的问题,hql语句如下:"from Bill where dataDate?=? and callerNumber like ?”;如此简单的一条语句,在执行时却报了一个“ordinal parameter mismatch;”异常。奇哉怪哉,把callerNumber条件放到最前面却是好的:“from Bill where callerNumber like ? and dataDate?=?”。


原因


经多方查证,原来是call这个字符串惹的祸。在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" );
    ......
}

把callNumber中的call当作是存储过程的call关键字了!


解决

   1. 将带有call字样的字段放到查询条件最前面
   2. 用Criteria替代hql
分享到:
评论

相关推荐

    hibernate映射枚举类型

    Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...

    Hibernate中映射枚举类型

    本文将详细介绍在Hibernate中如何进行枚举类型的映射。 #### 映射枚举类型的基本方式 Hibernate提供了一个专门用于枚举类型映射的类`org.hibernate.type.EnumType`。通过这个类,我们可以选择将枚举实例的`name`...

    Hibernate3.2EnumTypeMapping-demo.zip

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑层解耦,提高代码的可维护性和可扩展性。在Hibernate3.2版本中,对枚举类型的支持得到了显著增强,引入了更...

    hibernate-annotations-3.4.0.GA and hibernate-entitymanager-3.4.0.GA

    - `@Enumerated(EnumType.ORDINAL)`: 使用枚举的索引位置作为数据库中的数值,节省存储空间,但可能影响可读性。 3. **关系映射** - `@ManyToOne`, `@OneToOne`: 用于表示一对一或一对多的关系,描述实体间的关联...

    Java中怎样由枚举常量的ordinal值获得枚举常量对象

     在本例中,对于Season.SPRING这个对象,Season.SPRING.name()能够得到该对象的字符串,即“SPRING”;反之,由Season.valueOf(“SPRING”)则能够得到该对象,即Season.SPRING。也是说,使用name()方法和valueOf...

    nominal(名目),ordinal(顺序)

    数据分类,文献中nominal,ordinal,数据类型的解释与例子,本资源为PPT是在统计学中将数据分为不同的类型

    马士兵hibernate文档.doc

    在本文档中,我们将深入探讨Hibernate的一些核心概念和配置选项,以便更好地理解和应用这个框架。 首先,`hibernate.hbm2ddl.auto`是一个重要的配置属性,它控制了Hibernate在SessionFactory创建时如何与数据库交互...

    Ordinal Optimization:Soft Optimization for Hard Problems

    《序优化:软优化解决硬问题》一书由何毓琦教授与清华大学的赵千川、贾庆山老师共同撰写,旨在探讨一种新颖的优化方法——序优化(Ordinal Optimization),用以解决那些传统优化手段难以应对的复杂难题。...

    Demo_OPL Ordinal Pattern Mining_TSCCA_

    总的来说,"Demo_OPL Ordinal Pattern Mining_TSCCA_" 提供了一个结合序模式挖掘和三向稀疏典型相关分析的综合应用场景,这将帮助研究者和实践者深入理解这两个技术,并能够将它们有效地应用于自己的项目中。...

    Large Margin Rank Boundaries for Ordinal Regression

    ### 大边际等级边界在序回归中的应用 #### 核心知识点概述 本文主要探讨了在序回归(Ordinal Regression)领域内如何运用大边际(Large Margin)方法来定义等级边界的问题。序回归是一种用于处理有序分类变量预测...

    Ordinal

    Coq中的序数普通人我们定义序数如下。 Inductive t: Type := | build (A: Type) (os: A -&gt; t) . Inductive le: t -&gt; t -&gt; Prop := | le_intro A0 A1 os0 os1 (LE: forall (a0: A0), exists (a1: A1), le (os0 a0) ...

    20_Tan_research.rar_ordinal_research

    Ordinal Representation for Biometric Patterns. Very helpful in Large number of object to be compared. its sort of ranking based comparison.not quantitative

    Ordinal Distance Metric Learning for Image Ranking

    Recently, distance ... We first present a linear ordinal Mahalanobis DML model that tries to preserve both the local geometry information and the ordinal relationship of the data. Then, we develop a no

    ordinal-layers.github.io

    "ordinal-layers.github.io" 是一个基于GitHub托管的项目,主要关注的是JavaScript技术。这个项目的网页可能是一个关于数据处理、可视化或前端开发的资源库,其中"ordinal-layers"可能是项目的核心概念,可能是一个...

    Ordinal-Markup:Github版本的序号标记

    顺序标记上班懒惰的咳嗽咳嗽PATCAIL 最大化平凡和减少数字的游戏文件概述: calc.js将包含所有获取某物价值的get()和calc()函数。 saveload.js将包含初始化,保存和加载文件。 color.js将包含与颜色转换和序数...

    springboot项目中枚举类型的最佳实践

    在Spring Boot项目中,枚举类型(Enums)的使用是一种常见的数据表示方式,它们提供了类型安全和可维护性。本文将深入探讨如何在Spring Boot应用中实现枚举类型的最佳实践,包括前端与后端交互、数据库操作以及序列...

    Support Vector Learning for Ordinal Regression

    ### 支持向量学习在序回归中的应用 #### 概述 《支持向量学习在序回归中的应用》一文由Ralf Herbrich、Thore Graepel和Klaus Obermayer撰写,他们来自柏林工业大学计算机科学系。本文探讨了预测变量属于序级尺度的...

    JAVA-Degree-ordinal.rar_Java degree

    本资源“JAVA-Degree-ordinal.rar_Java degree”包含9个与Java相关的代码片段,这些代码主要关注文件操作,包括缓冲、查看以及读写功能。下面将对这些知识点进行详细的解释和探讨。 1. **文件缓冲**: 在Java中,...

    dll依赖关系查看程序depend

    DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它是一种共享库,包含了可执行代码和数据,供多个程序使用。了解DLL的依赖关系对于开发者来说至关重要,因为这有助于解决程序运行时因缺失或...

Global site tag (gtag.js) - Google Analytics