【问题标题】:Select statement failing after h2 database jar upgrade in oracle mode在 oracle 模式下升级 h2 数据库 jar 后选择语句失败
【发布时间】:2015-09-16 14:38:28
【问题描述】:

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

错误跟踪:

未找到函数“BUS_ENTY_GUID”; SQL 语句: SELECT * FROM(选择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(?) ) where rownum

请帮助解决问题

【问题讨论】:

    标签: java hibernate h2


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      感谢托马斯的帮助!

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-22
          • 2020-06-04
          • 1970-01-01
          • 1970-01-01
          • 2014-10-05
          • 1970-01-01
          • 1970-01-01
          • 2016-07-25
          相关资源
          最近更新 更多