在oracle模式下h2数据库jar升级后,select语句失败

时间:2015-09-16 14:38:28

标签: java hibernate h2

将H2数据库版本从1.3.171升级到1.4.187后,我的select语句失败并出现jdbc错误代码[90022-187]。我使用的是Spring 4和Hibernate 4.3.5。

错误追踪:

功能" BUS_ENTY_GUID"未找到; SQL语句: 选择从*(选择consumerin0_.CNSMR_INTNT_SID如CNSMR_IN1_0_0_,busentity1_.BUS_ENTY_SID如BUS_ENTY1_4_1_,intentuser2_.USR_SID如USR_SID1_10_2_其中consumerin0_.OWNR_ENTY_NM = busentity1_.BUS_ENTY_GUID(+)和consumerin0_.USR_EXTRNL_ID = intentuser2_.MAG_GUID(+)和较低的(consumerin0_.ORD_ID )= lower(?)和lower(intentuser2_.USR_LAST_NM)= lower(?))其中rownum< =? [90022-187]

请帮助解决问题

3 个答案:

答案 0 :(得分:2)

H2不再支持“旧式”Oracle外连接语法。您将不得不使用“外部联接”。

答案 1 :(得分:0)

感谢托马斯的帮助!

我使用的是org.hibernate.dialect.OracleDialect,因此查询的转换具有较旧的样式连接。现在我已将其更改为Oracle10gDialect,它工作正常。

答案 2 :(得分:0)

使用-Dh2.oldStyleOuterJoin=true支持较旧的语法。

访问http://www.h2database.com/javadoc/org/h2/engine/SysProperties.html