簡體   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