HSQL 中无法识别交叉连接

Posted

技术标签:

【中文标题】HSQL 中无法识别交叉连接【英文标题】:Cross join not recognized in HSQL 【发布时间】: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 的单元测试失败了。它说“交叉连接”不是公认的关键字。

【问题讨论】:

【参考方案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.jdbcDriverhibernate.dialect=org.hibernate.dialect.HSQLDialect。我还需要别的吗? @Julien 在 Hibernate 站点提交错误报告。您报告的查询翻译包含 DELETE 语句中的连接,HSQLDB 不支持,SQL 标准也不允许。

以上是关于HSQL 中无法识别交叉连接的主要内容,如果未能解决你的问题,请参考以下文章

animateWithDuration 无法识别?

学校公用网络显示已连接,但是未识别,打开浏览器无法进入web登陆页面

连接列无法识别实体关系

为啥链接器无法识别我的链接器脚本中定义的入口点

为啥电脑无法识别USB打印机?

AFNetworking Reachability 首次无法识别互联网连接