Select 在 Oracle 模式下升级 h2 数据库 jar 后语句失败

Select statement failing after h2 database jar upgrade in oracle mode

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

错误跟踪:

未找到函数 "BUS_ENTY_GUID"; SQL声明: select * 来自 ( select 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(+) and consumerin0_.USR_EXTRNL_ID=intentuser2_.MAG_GUID(+) and lower(consumerin0_.ORD_ID)=lower(?) and lower(intentuser2_.USR_LAST_NM )=lower(?) ) 其中 rownum <= ? [90022-187]

请帮忙解决问题

H2 不再支持 "old style" Oracle 外连接语法。您必须改用 "outer join"。

感谢托马斯的帮助!

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

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

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