我注意到在休眠中,它一次查询一个实体的子实体集合。因此,例如,我有一个 Person 实体,它与 PhoneNumber 具有 OneToMany 关系,并且与 EmailAddress 具有 OneToMany 关系。如果我对返回 1,000 人的 Person 实体进行简单查询,那么 hibernate 将对 EmailAddress 进行 1,000 次查询,对 PhoneNumber 进行 1,000 次查询。让我们暂时忘记急切或懒惰的获取,假设我将访问每个人的电话和电子邮件集合。
这似乎是一个幼稚的实现。有没有一种简单的方法来改变它,所以只有 1 个查询到 PhoneNumber,只有 1 个查询到 EmailAddress?这些应该放入由 Person 外键作为键的映射中,以便 Person getter 方法轻松检索它们。
除了在执行 Person 查询之前对会话缓存中的电子邮件和电话号码进行暴力查询之外,还有什么想法吗?
TIA,如果您需要更多数据,请告诉我。