【问题标题】:Cross join not recognized in HSQLHSQL 中无法识别交叉连接
【发布时间】:2011-09-22 11:17:12
【问题描述】:

我正在使用 HSQL 1.7 版。有一部分我有如下的 HQL

String hql = "来自 ProductInv prodInv where prodInv.product.id in (:prodList)";

prodList包含产品id列表,上面的hql是获取prodList中所需产品id的产品库存。

这个 hql 被翻译成带有“交叉连接”的原生 sql 查询。当这对我的实际 db2 起作用时,它可以正常工作。但是我基于 HSQL 的单元测试失败了。它说“交叉连接”不是公认的关键字。

【问题讨论】:

    标签: hsqldb


    【解决方案1】:

    您需要升级到最新版本的 HSQLDB 之一(HSQLDB 版本 1.7.x 至少有 7 年的历史)。

    如果您的 Hibernate 版本是 3.6 或更高版本,请使用最新的 HSQLDB(2.2.8 或更高版本)。对于旧版本的 Hibernate,请使用 1.8.1.3。

    【讨论】:

    • 我会尝试使用最新版本。
    • 我的 JPA 查询被转换为 delete from A cross join B b_ where b1=?,这不受 HSQLDB 2.3.3 和 HSQLDB 2.5.0 的支持。
    • @Julien 需要为 HSQLDB 设置您的 JPA 提供程序
    • @fredt 我的 JPA 提供程序配置了驱动程序类名称 org.hsqldb.jdbcDriver 和 hibernate.dialect=org.hibernate.dialect.HSQLDialect。我还需要别的吗?
    • @Julien 在 Hibernate 站点提交错误报告。您报告的查询翻译包含 DELETE 语句中的连接,HSQLDB 不支持,SQL 标准也不允许。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多