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

我有 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。


白衣非少年
浏览 177回答 1
1回答

波斯汪

你的假设是错误的。在 JPA 中,您可以使用“fetch”关键字来查询整个对象图,这基本上可以在一次查询中获取数据库中的所有数据。所以你会做类似的事情entityManager.createQuery("select asset from Asset asset join fetch asset.category cat join fetch cat.size size");这将在一个查询中获得带有其类别的资产,以及带有其大小的类别。除了这 3 个表非常少之外,您通常可以使用基本连接连接更多的表,而不会出现性能问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java