gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 23:28:56 24 4
gpt4 key购买 nike

我有 3 个实体一世。 Assets (PK asset_id,FK category_id)二.类别(PK category_id,FK:size_id)三.尺码(PK size_id)

现在每个 Assets 都属于一个类别(多对一)并且每个类别都有一个大小(多对一)在典型的 ORM 中,我会触发一个 Assets 检索查询,该查询又会调用 (SELECT * from asset)现在当我调用 Asset.getCategory() 时,它会调用 (SELECT * from category)调用 Caegory.getSize() 将调用 (SE:ECT * from size)

因此 OOP 中的单个实体检索进行 3 次数据库调用就好像我写了一个连接查询,它在数据库调用上进行。让我想知道,为什么我们使用 ORM。

最佳答案

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

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

这将在一次查询中获取 Assets 及其类别,以及该类别及其大小。除了 3 个表非常少之外,您通常可以通过基本连接连接更多的表而不会出现性能问题。

关于java - 如果我的应用程序需要大量连接查询,我应该使用 ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52082213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com