PL/SQL 的SQL语句可以执行,但是放在hibernate中,后台打印,出现了错误。

错误的SQL解析:黄色为错误部分

Hibernate: 

    select

        examinee0_.EXAM_YEAR as col_0_0_,

        count(*) as col_1_0_,

        sum(caseexaminee0_.CHECK_FLAGwhen'2'then1else 0end) as col_2_0_

     from

        vet_test.EXAMINEE examinee0_ 

    group by

        examinee0_.EXAM_YEAR 

    order by

        examinee0_.EXAM_YEAR ASC

很明显 ,标黄的地方出错,空格不翼而飞,后台提示ORA-00907: 缺失右括号

经过一番检查!终于发现了问题所在:那就是hibernate的SQL查询翻译器!

Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,     
     在hibernate的配置文件中,hibernate.query.factory_class     
     属性用来选择查询翻译器。     
     (1)选择Hibernate3.0的查询翻译器:     
     hibernate.query.factory_class=     
     org.hibernate.hql.ast.ASTQueryTranslatorFactory     
     (2)选择Hibernate2.1的查询翻译器hibernate.query.factory_class=     
     org.hibernate.hql.classic.ClassicQueryTranslatorFactory

解决方案:

将hibernate.cfg.xml的

<property name="hibernate.query.factory_class">

org.hibernate.hql.classic.ClassicQueryTranslatorFactory

</property>

标蓝色的部分替换成org.hibernate.hql.ast.ASTQueryTranslatorFactory

替换后后台打印解析后的sql:黄色为解析正确后的sql

Hibernate:

select

examinee0_.EXAM_YEAR as col_0_0_,

count(*) as col_1_0_,

sum(case examinee0_.CHECK_FLAG

when '2' then 1

else 0

end) as col_2_0_

from

vet_test.EXAMINEE examinee0_

group by

examinee0_.EXAM_YEAR

order by

examinee0_.EXAM_YEAR ASC

ORA-00907: 缺失右括号(通用解决办法)的更多相关文章

  1. ORA-00907: 缺失右括号 整理解决

    ORA-00907: 缺失右括号 前言 最近在开发过程中使用oracle数据库,在程序中进行查询数据时遇到了“ORA-00907: 缺失右括号”的问题,但是如果直接把sql语句直接在数据库或PL/SQ ...

  2. Oracle创建表格报ORA-00906:缺失左括号错误解决办法

    来源于:http://www.linuxidc.com/Linux/2013-06/85297.htm 解决办法: create table myTable(id number(5,2),name v ...

  3. ORA-00907: 缺失右括号,原因及解决办法整理

    ORA-00907: 缺失右括号,原因及解决办法整理 1 union all中order by 导致缺失右括号 在有union all的子查询中使用了order by,会导致缺失右括号的错误,事实上在 ...

  4. ORA-00907: 缺失右括号问题整理解决

    ORA-00907: 缺失右括号 前言 近期在开发过程中使用oracle数据库,在程序中进行查询数据时遇到了"ORA-00907: 缺失右括号"的问题.可是假设直接把sql语句直接 ...

  5. [转]ORA-00907: 缺失右括号

    转至:http://www.cnblogs.com/Olive116/p/5149680.html ORA-00907: 缺失右括号 前言 最近在开发过程中使用oracle数据库,在程序中进行查询数据 ...

  6. ORA-00907: 缺失右括号

    创建表时出现ORA-00907: 缺失右括号的情况 调整关键字的顺序 CREATE TABLE s_dept(ID PRIMARY KEY NOT NULL NUMBER(7),NAME NOT NU ...

  7. log file sync 等侍值高的一般通用解决办法

    log file sync等待时间发生在redo log从log buffer写入到log file期间. 下面对log file sync做个详细的解释. 何时发生日志写入: 1.commit或者r ...

  8. 【java】oracle好用,但java运行缺失右括号

    可能原因SQL拼接有空格被省略导致sql粘连. 解决办法,扩大拼接或者缩小拼接范围.

  9. echarts中图表过于靠左或靠右的情况解决办法。

    经过好多次尝试,终于在http://blog.csdn.net/ainuser/article/details/76641963中得到解决. grid: { x: '30%', //相当于距离左边效果 ...

随机推荐

  1. Layui表格之动态添加数据(表格多选解决方案)

    前言: Layui已经给出了多选记录的解决方案,是在每条数据的前面加上CheckBox,每次选择都有监听.效果是这样: 实现监听的代码如下,这是一种解决选择多条数据的方案: table.on('edi ...

  2. win7 x64安装glpk

    下载glpk,下载地址:http://ftp.gnu.org/gnu/glpk/

  3. ArcGIS:Hello World Maps

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...

  4. 17-看图理解数据结构与算法系列(NoSQL存储-LSM树)

    关于LSM树 LSM树,即日志结构合并树(Log-Structured Merge-Tree).其实它并不属于一个具体的数据结构,它更多是一种数据结构的设计思想.大多NoSQL数据库核心思想都是基于L ...

  5. reactNative 打包那些事儿

    我们项目测试时一般是debug版本,打包上线,一般是release版本,所以在测试和打包时会走不同的方法,如上图所示. 在debug版本中,会走我们本地服务器,也就是自己电脑上的服务.在release ...

  6. wps填充1到1000

    A1单元格1 ,选中,填充,序列,确定

  7. 九度oj 题目1473:二进制数(stack)

    题目1473:二进制数 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:9371 解决:2631 题目描述: 大家都知道,数据在计算机里中存储是以二进制的形式存储的. 有一天,小明学了C语 ...

  8. POJ 1330 (LCA)

    http://poj.org/problem?id=1330 题意:给出一个图,求两个点的最近公共祖先. sl :水题,贴个模板试试代码.本来是再敲HDU4757的中间发现要用LCA,  操蛋只好用这 ...

  9. [K/3Cloud] 动态表单打开时传递一个自定义参数并在插件中获取

    插件中在调用动态表单时,通过DynamicFormShowParameter的CustomParams,增加自定义的参数. /// <summary> /// 库存查询 /// </ ...

  10. 使用SAX方式解析XML文件

    package com.pingyijinren.test; import android.util.Log; import org.xml.sax.Attributes; import org.xm ...