0

我需要从已经收到的结果对象中查询数据库以获取不同的元素组合。

例如,我得到一个Person实体列表。对于 Person 实体中的每个人,我需要获取地址列表(每个人)。

有两种方法可以做到:

  1. 迭代 Person 实体并为每个 Person 实体触发查询以获取该人的地址列表。
  2. 使用来自 Person 实体的元素动态构建一个查询并触发一个查询以提取所有 Person 的所有地址列表,然后再次迭代 Person 实体并匹配每个 Person 的地址列表。

我不知道很多我可能会得到的 Person 实体。那么就性能和实践而言,更好的方法是什么。

因此,如果我有 100 个 Person 实体,在第一种方法中,它将是 100 个查询,而第二种方法将是如下所示的大量查询

 from address where  (person.id = 1 and person.zip = 393)
                  or (person.id = 2 and person.zip = 123)
                  or (person.id = 3 and person.zip = 345)
                  .... // 10 times.

哪一个更好?Oracle 中或条件的任何限制/限制?有更好的方法吗?批量查询?

4

1 回答 1

0

您可以使用带有急切加载的hibernate,通过加载具有所需限制的人来直接获得您想要的结果。或者,如果您想坚持延迟加载,请尝试使用带有人员和地址的内部联接,以便您可以获取包含结果的数组列表

于 2013-07-07T02:34:55.323 回答