@OneToMany休眠中的Collection映射

时间:2018-10-12 20:23:21

标签: java hibernate orm persistence

只要我们具有@OneToMany关系的双向映射,那么我们就在父实体中使用Collection来收集所有子实体。但是,出于性能方面的考虑,始终建议使用较少数量的子实体。据说在子级中有@ManyToOne单向映射,如果我们需要与父级关联的子级,则使用查询。是什么原因呢?

1 个答案:

答案 0 :(得分:0)

我不确定您在哪里读的书,没有一般规则。

但是请考虑:

  1. 如果您认为如何将其映射到表,则子表将具有指向父表的外键。在rdbms端,父级将没有显式的“集合”,外键隐含了该集合。因此,ManyToOne倾向于反映实现。

  2. 如果您将一个映射到多个,则意味着您的父级中有一个集合。如果有很多孩子,则可能会占用大量内存。

  3. 在许多情况下,检索父级时不需要子级。 (这当然也可以使用惰性集合来解决。)

  4. 如果父级有一个集合,则在检索子级时需要执行查询,据说必须执行以检索子级。

也许这可以帮助您澄清一些建议。