为什么Hibernate在父节点更新时执行多个查询来更新子节点?



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

你能告诉我为什么有这些针对儿童的查询吗?我该如何避免它们呢?

如果您设置了cascade="all",则意味着父实体上的每个操作将调用子实体上的相同操作。因此,如果您不想从关联中级联子实体上的操作,则必须删除cascade=all。

但是你应该小心这个配置,因为如果你没有级联持久化(例如)创建的子实体不会被持久化,即使它是定期创建的,但你必须在每个子实体上显式地调用save。

你想要阻止Hibernate从更新子实体你应该改变级联类型,删除cascade=all

最新更新