只要我们具有@OneToMany
关系的双向映射,那么我们就在父实体中使用Collection来收集所有子实体。但是,出于性能方面的考虑,始终建议使用较少数量的子实体。据说在子级中有@ManyToOne
单向映射,如果我们需要与父级关联的子级,则使用查询。是什么原因呢?
答案 0 :(得分:0)
我不确定您在哪里读的书,没有一般规则。
但是请考虑:
如果您认为如何将其映射到表,则子表将具有指向父表的外键。在rdbms端,父级将没有显式的“集合”,外键隐含了该集合。因此,ManyToOne倾向于反映实现。
如果您将一个映射到多个,则意味着您的父级中有一个集合。如果有很多孩子,则可能会占用大量内存。
在许多情况下,检索父级时不需要子级。 (这当然也可以使用惰性集合来解决。)
如果父级有一个集合,则在检索子级时需要执行查询,据说必须执行以检索子级。
也许这可以帮助您澄清一些建议。