Java 多个Or条件与多个单独的JPQ/Hibernate查询-在实体上

Java 多个Or条件与多个单独的JPQ/Hibernate查询-在实体上,java,sql,hibernate,jpa,entity,Java,Sql,Hibernate,Jpa,Entity,我需要从已经接收到的结果对象查询数据库中的不同元素组合 例如,我得到一个Person实体的列表。对于个人实体中的每个人,我需要获得(每个人的)地址列表 有两种方法可以做到这一点: 迭代Person实体并对每个Person实体发出查询,以获取该人员的地址列表 使用Person实体中的元素动态构建一个查询,并触发一个查询以获取所有人员的所有地址列表,然后再次迭代Person实体并匹配每个人员的地址列表 我不知道我能得到多少人。那么,在性能和实践方面,什么是更好的方法呢 所以,如果我有100个人的实体

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

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

有两种方法可以做到这一点:

  • 迭代Person实体并对每个Person实体发出查询,以获取该人员的地址列表
  • 使用Person实体中的元素动态构建一个查询,并触发一个查询以获取所有人员的所有地址列表,然后再次迭代Person实体并匹配每个人员的地址列表
  • 我不知道我能得到多少人。那么,在性能和实践方面,什么是更好的方法呢

    所以,如果我有100个人的实体,在第一种方法中,它将是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中的任何限制/限制或条件?
    有更好的方法吗?批处理查询?

    您可以使用hibernate和急切加载,通过加载具有所需限制的人员,直接获得所需的结果。或者,如果您想坚持延迟加载,请尝试使用带有person和Address的内部联接,这样您就可以得到一个数组列表,其中包含结果

    可能是因为我的问题不清楚。我不能把这个人和地址联系起来。我必须迭代Person Entities以获取每个人的地址。问题是单个查询或多个查询