首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在H2数据库中使用联接

问无法在H2数据库中使用联接
EN

Stack Overflow用户
提问于 2019-02-26 11:24:00
回答 1查看 875关注 0票数 0

在使用H2 (1.3.168)作为本地数据库时,通过Java Hibernate执行某些查询时,我遇到了一个奇怪的问题。看起来Hibernate试图执行一系列SELECT语句,但其中一条失败了,并显示了一个模糊的错误。

日志文件报告说,少数成功执行的SELECT语句只有一个参与表,例如SELECT ...来自T1的地方...;

但是,当它到达语句中的一个简单的LEFT OUTER JOIN语句时,会产生以下错误:

代码语言:javascript
复制
General error: "java.lang.NoClassDefFoundError: org/h2/table/TableFilter$2" [50000-168]

我接受了Hibernate报告的完全相同的查询,并尝试直接在H2控制台中执行它。同样的错误。

我用一个简单的连接替换了左外部连接,同样的错误。我从连接中删除了第二个表,然后从第一个表中进行选择,它选择得很好。对第二个表做了同样的事情,没有问题,例如

代码语言:javascript
复制
SELECT * FROM T1;

我试过一堆其他表的连接...错误再次出现。

代码语言:javascript
复制
SELECT * FROM T1 t1 JOIN T2 t2 ON t1.pk_id = t2.fk_id;

有人知道H2的问题出在哪里吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 12:55:14

当应用程序在启动时执行时,问题出在drop-recreate脚本中缺少的序列对象之一(与Hibernate/Spring无关)。在H2中单独运行脚本,并将其与另一组create/drop语句进行比较,以发现后者可以工作,但前者不行。

非常奇怪的是,由于这个原因,H2完全崩溃了,并且不允许包含JOIN的语句被执行,而没有JOIN的简单查询可以正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54877987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档