为了账号安全,请及时绑定邮箱和手机立即绑定

如果我的应用程序需要大量连接查询,我应该使用 ORM

如果我的应用程序需要大量连接查询,我应该使用 ORM

白衣非少年 2021-08-19 19:05:32
我有 3 个实体 i。资产(PK 资产_id,FK 类别_id) ii. 类别(PK category_id, FK: size_id) iii. 尺寸(PK size_id)现在每个资产都属于一个类别(多对一)并且每个类别都有一个大小(多对一)我调用 Asset.getCategory(),它会调用 (SELECT * from category) 并且调用 Caegory.getSize() 会调用到 (SE:ECT * from size)因此,OOP 中的单个实体检索进行了 3 个 DB 调用,就像我在 DB 调用上编写的连接查询一样。让我想知道,为什么我们使用 ORM。
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

你的假设是错误的。在 JPA 中,您可以使用“fetch”关键字来查询整个对象图,这基本上可以在一次查询中获取数据库中的所有数据。所以你会做类似的事情

entityManager.createQuery("select asset from Asset asset join fetch asset.category cat join fetch cat.size size");

这将在一个查询中获得带有其类别的资产,以及带有其大小的类别。除了这 3 个表非常少之外,您通常可以使用基本连接连接更多的表,而不会出现性能问题。


查看完整回答
反对 回复 2021-08-19
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信