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. WebService 服务开发

    开发 WebService 服务首先需要根据接口的要求编写相关的 wsdl 文件.编写 wsdl 文件需要先对 XML 语法.XML Schema 语法以及 SOAP 语法有一些简单了解. 假设需要提 ...

  2. 【VScode】使用VScode 来写markdown时序图

    准备工作 在VScode中下载插件Markdown Preview Enhanced插件 创建一个.md文件 在VScode中打开文件,界面内点击右键可以看到Open preview to the s ...

  3. 专题训练——[kuangbin带你飞]最短路练习

    最短路练习 0. Til the Cows Come Home  POJ - 2387 完美的模板题 //#include<Windows.h> #include<iostream& ...

  4. BZOJ 4519 不同的最小割 最小割树

    题面: 把每两个点当成源汇,求N*(N-1)个最小割中不同的有多少个 N<=850 分析: 有这样一个结论:一张无向图不同的最小割最多有n-1个. 那么我们一定可以建出一棵树,使得这棵树中每两个 ...

  5. MySQL 日志初探

    目录 MySQL 日志初探 零.概述 一.Error Log(错误日志) 二.General Query Log(通用查询日志) 三.Slow Query Log (慢查询日志) 四.Binary L ...

  6. [Python3网络爬虫开发实战] 7.2-Splash的使用

    Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库.利用它,我们同样可以实现动态渲染页面的抓取. 1. 功能介 ...

  7. [bzoj1208][HNOI2004][宠物收养所] (平衡树)

    Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特 ...

  8. CSS实现折叠面板

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. 谷歌浏览器添加Bing搜索引擎:

    谷歌浏览器添加Bing搜索引擎:   https://www.bing.com/search?q=%s&pc=MOZI&form=MOZLBR  

  10. ElasticSearch全文搜索引擎(A)

    文章:[Elasticsearch] 全文搜索 (一) - 基础概念和match查询 全文检索,是从最初的字符串匹配和简单的布尔逻辑检索技术,演进到能对超大文本.语音.图像.活动影像等非结构化数据进行 ...