java - HSQLDB View (INNER-JOIN)在运行时出现故障

标签 java view inner-join hsqldb

设置

我的数据库 View 有问题。我们使用 Java 7、Google Guice、Hibernate 5.1.0.Final、liquibase 3.5.3 和 HSQLDB 2.3.4。 我们解析几个文件并将数据保存到 hsqldb(文件模式)。然后,我们使用两个 View 的组合来收集文件导出的数据。

问题

所以我遇到的问题如下: 与之后打开 hsqldb 相比,我们的 select 查询将在运行时为我们提供不同的结果。 This is the problem simplified:

观看次数

这些与我们使用的 View 类似(但更加简化):

CREATE VIEW COMBINED AS
SELECT i.ID, o.* 
FROM 
    OCCURRENCE o
    JOIN IDENTIFIER i ON o.REF_IDENTIFIER_REVISION = i.ID


CREATE VIEW COMBINED_2 AS
SELECT
    combinedView.ID_OCCURRENCE as ID_PARENT,
    combinedChild.ID_OCCURRENCE as ID_CHILD,
    ConfData.DATA,
FROM 
    COMBINED combinedView
    INNER JOIN CONF_DATA ConfData ON ConfData.ID = combinedView.ID_PARENT
    JOIN OCCURRENCE combinedChild ON combinedView.ID_OCCURRENCE = combinedChild.REF_PARENTOCCURRENCE

查询

我们对第二个 View 执行查询:

TypedQuery<ViewEntity> query = entityManager.get().createQuery("select v from ViewEntity v", VerwendungGeoPosEntity.class);

表出现次数

我将跳过 IDENTIFIER 因为在我的问题中数据是不相关的。就我而言,所有情况下的 IDENTIFIER 数据都是相同的。我包含了第一个 View ,以防万一 View 包含 View 可能是问题的原因。

ID     | NAME
------ | ------
1      | Parent 1
2      | Child 1

表 CONF_DATA

ID     | DATA
------ | ------
1      | Parent Data 1 
2      | Parent Data 2

运行时查看

ID_PARENT | ID_CHILD | DATA
------    | ------   | ------
1         | 2        | Parent Data 1
1         | 2        | Parent Data 1

运行后查看

ID_PARENT | ID_CHILD | DATA
------    | ------   | ------
1         | 2        | Parent Data 1
1         | 2        | Parent Data 2

有人遇到过这个问题吗?我将非常感谢您的帮助。

最佳答案

我发现了问题。

虽然在 persistence.xml 中所有表的实体都没有 View COMBINED_2 的实体。 :$

将实体添加到上下文后,一切正常。

运行时未发现任何问题。但是,当我为这种特殊情况创建 JUnit 测试时,我收到一条消息,该实体未映射。

关于java - HSQLDB View (INNER-JOIN)在运行时出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44926297/

相关文章:

NHibernate 内连接给出 "Path expected for join"

SQL:在连接后获取列上的特定行值

java - 序列化类数据到底是什么?

postgresql - 删除所有 View PostgreSQL

Android: 如何在 GridView 中显示菜单项(通常显示在 ListView 中)?

mysql添加引用 View 的外键约束

python - Pandas 内部合并/连接返回所有行

代码 :The state field path cannot be resolved to a valid type 中的 Java JPA Mysql 错误

java - 如何使 BoxLayout 表现为垂直 FlowLayout?

java - 在资源中找到未签名的条目