繁体   English   中英

当父级更新时,为什么Hibernate执行多个查询来更新子级?

[英]Why does Hibernate execute multiple queries for updating children when parent is updating?

我与inverse="false"cascade="all"有多对一的关系。 当我更新父对象时,有一个针对该父对象的更新查询和多个更新查询-一个针对子对象集合中每个子对象的查询。

你能告诉我为什么对孩子有这些疑问吗? 我该如何避免呢?

如果您具有cascade =“ all”,则意味着父实体上的每个操作都将在子实体上调用相同的操作。 因此,如果您不想从关联中级联对子实体的操作,则必须删除cascade = all。

但是您应该谨慎使用该配置,因为(例如)如果您没有级联持久性,则即使定期创建创建的子实体也不会持久化,但是您必须在每个子实体上显式调用save。

您可以在此线程上阅读有关级联类型的更多信息

您要防止Hibernate更新子实体,应更改级联类型,删除cascade=all

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM