Java 多个一对多关系的数据库视图

Java 多个一对多关系的数据库视图,java,database,hibernate,relational-database,Java,Database,Hibernate,Relational Database,对于以下场景,为Java/Hibernate应用程序设计视图的最佳方法是什么: 实体A与实体B、实体C和实体D存在一对多关系 需要在UI的单个表中显示实体a的所有关系 创建一个数据库视图并用hibernate映射它有意义吗 或 将所有逻辑都用Java编写,并使用通过Hibernate完成的多个查询的结果填充POJO 在第一种情况下,如果使用视图,那么这样的视图是否可行?我无法找到有关创建具有实体Id、组件Id、组件类型等结构的视图的信息,其中组件Id和组件类型的值来自实体B、C、D 有什么是我根

对于以下场景,为Java/Hibernate应用程序设计视图的最佳方法是什么:

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

需要在UI的单个表中显示实体a的所有关系

创建一个数据库视图并用hibernate映射它有意义吗

将所有逻辑都用Java编写,并使用通过Hibernate完成的多个查询的结果填充POJO

在第一种情况下,如果使用视图,那么这样的视图是否可行?我无法找到有关创建具有实体Id、组件Id、组件类型等结构的视图的信息,其中组件Id和组件类型的值来自实体B、C、D

有什么是我根本做错的吗

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

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

我的印象是OP喜欢加载单个实体的所有关系a。不确定,是的,我不确定。从技术上讲,ID是显示实体A的所有关系所需的全部。不管怎样,他只需更改所选内容。*或者更具体的。