1

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

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

4

2 回答 2

1

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

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

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

于 2013-04-08T16:22:56.097 回答
0

您想防止Hibernate更新子实体,您应该更改级联类型 remove cascade=all

于 2013-04-08T16:19:54.627 回答