@OneToMany 映射休眠中的集合

Posted

技术标签:

【中文标题】@OneToMany 映射休眠中的集合【英文标题】:@OneToMany mapping for Collection in hibernate 【发布时间】:2018-10-12 20:23:20 【问题描述】:

每当我们有@OneToMany 关系的双向映射时,我们就会在父实体中使用一个集合来收集所有子实体。但是,出于性能考虑,始终建议使用较少数量的子实体。据说在孩子中有@ManyToOne 单向映射,如果我们需要与父母关联的孩子,则使用查询。这是什么原因?

【问题讨论】:

【参考方案1】:

我不确定你在哪里读到的。没有一般规则。

但是考虑一下:

    如果您认为它是如何映射到表的,则子表将具有指向父表的外键。在 rdbms 方面,父级中不会有显式的“集合”,它是由外键隐含的。所以ManyToOne倾向于反映实现。

    如果您映射一对多,这意味着您在父级中有一个集合。如果它有很多孩子,它可能会占用很多内存。

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

    如果父级有一个集合,则在检索子级时您需要执行查询,据说您应该执行以检索子级。

也许这可以帮助您在一定程度上澄清假定的建议。

【讨论】:

这不是我要寻找的。​​span>

以上是关于@OneToMany 映射休眠中的集合的主要内容,如果未能解决你的问题,请参考以下文章

休眠:覆盖(实体)超类的 OneToMany 映射字段?

JPA(休眠)映射OneToMany不正确?

我在@OneToMany 休眠映射中遇到错误?

非冗余休眠列表映射 (OneToMany)

休眠更新到 OneToMany 集合的唯一约束冲突

您如何在休眠条件中订购 oneToMany 连接表