java - 多个一对多关系的数据库 View

标签 java database hibernate relational-database

针对以下场景设计 Java/Hibernate 应用程序 View 的最佳方法是什么:

存在实体 A 与实体 B、实体 C 和实体 D 具有一对多关系。

需要在UI中的单个Table中显示实体A的所有关系。

创建数据库 View 并使用 hibernate 映射它是否有意义。

拥有 Java 中的所有逻辑并使用通过 Hibernate 完成的多个查询的结果填充 POJO 吗?

第一种情况,如果使用 View ,那么这样的 View 可能吗?我无法找到有关使用实体 Id、组件 Id、组件类型(其中组件 Id 和组件类型将具有来自实体 B、C、D 的值)等结构的 View 的信息。

我做的事情是根本错误的吗?

最佳答案

SELECT a.Id AS AID, b.Id AS BID, c.Id AS CID
FROM EntityA a
LEFT JOIN EntityB b ON a.Id = b.aId
LEFT JOIN EntityC c ON a.Id = b.aId

您可以将其作为一个 View ,但这与每次执行该查询几乎是一样的,除非您的数据库可以以某种方式对其进行优化(预先计算等)。我不是 hibernate 专家,但这是一个相当简单的查询。我无法想象有什么问题。

关于java - 多个一对多关系的数据库 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3758124/

相关文章:

javax.crypto.IllegalBlockSizeException : Input length must be multiple of 16 when decrypting with padded cipher

sql - 如何在sql server中跨服务器插入xml数据类型

java - Spring Integration : javax. persistence.TransactionRequiredException:没有事务正在进行

java - 通过 javax.inject.Provider 进行 Spring 注入(inject)太慢

java - Maven 项目依赖于同一 Artifact 的两个版本

java - 使用java命令部署jenkins war文件

mysql - 重置 MySQL 管理员密码? (其他解决方案似乎不起作用)

c# - Wix - 文件在打开其数据库后被锁定以供删除

java - 如何配置 hibernate 配置文件以拥有来自同一数据库的多个实例?

java - 如何使用常量将 hibernate 实体映射到另一个实体