[英]What harm does using joinColumn instead of mappedBy do?
我理解JoinColumn 和mappedBy 的两个JPA 注释之间的一般区别,并且oneToMany 关系应该使用mappedBy。 我理解这是为了确保休眠(或我使用的任何 JPA 工具)识别双向关系,而不是两个碰巧共享列的单向关系。
但是,我想更好地理解为什么这很重要? 我认为识别双向关系可以更优化地存储或获取数据,但有人能给我举个例子吗? 如果我有一个包含许多子对象的父对象,并且我使用 JoinColumn 而不是首选的 MappedBy 对其进行注释,那么我会在使用 MappedBy 时遭受性能损失吗?
我正在练习@joincolumn 和mappedBy,这是我在分析休眠日志时发现的。
使用mappedBY执行保存操作
当您使用mappedBy 创建实体时,您也在您的子对象中创建了父对象,然后执行保存操作。 hibernate 在后台做什么:-
使用@JoinColumn执行保存操作
使用 @JoinColumn 创建实体时,您不会在子对象中创建父对象。 hibernate 在后台做什么:-
您可以在休眠日志中看到这些操作。
基本上@JoinColumn 和mappedBy 做同样的工作,并带有额外的更新操作。 所以,mappedBy 的性能肯定比@JoinColumn 好。
但是,创建一两个实体不会有影响,但如果我们必须创建大量数据,肯定会导致严重的性能问题。
这个答案应该作为评论,但我不能添加评论,因为我没有足够的声誉。请参阅 JPA JoinColumn 与 mappingBy
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.