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

发布于 2024-09-24 10:19:44 字数 355 浏览 3 评论 0原文

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

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

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

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

或者

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

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

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

What is the best way to design a view for a Java/Hibernate Application for the following scenario:

There is Entity A that has one to many relation with Entity B, Entity C and Entity D.

There is a need to show all the relations of Entity A in a single Table in the UI.

Does it make sense to create a database view and map that with hibernate.

or

Have all the logic in Java and populate a POJO with the results from multiple queries done via Hibernate ?

In the first case, if views are used, then is such a view Possible ? I have been unable to find info on creating views with a structure such as Entity Id, Component Id, Component Type ( where Component Id and Component Type would have values from Entity B,C,D).

Is there something that I am doing fundamentally wrong ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

再可℃爱ぅ一点好了 2024-10-01 10:19:44
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

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

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

You could make that a view but it's pretty much the same thing as executing that query each time unless your database can optimize it in some way (pre-compute it, etc.). I'm no expert on hibernate but this is a rather simple query. I can't imagine any problems.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文