簡體   English   中英

Hibernate Cascade="none" 中的多對一

[英]Many-To-One in hibernate Cascade="none"

如果我有一個對象與其他對象是多對一關系的一部分,並且 CASCADE 的設置設置為 NONE,我是否必須單獨保存這些對象?

例如

在 HeroObject 中有一個 SkillObject,在 SkillObject 中有 CooldownObject。 如果我想在數據庫中持久化 HeroObject,我是否必須單獨保存 SkillObject 和 CooldownObject.

HeroObject 有自己的 heroDao.saveMethod(),SkillObject 也有 - sillDao.saveMethod() 和帶有cooldownDao.saveMethod() 的coolDownObject。

因此,如果將 CASCADE 設置為“NONE”,則在此示例中我必須執行 3 次 saves()。 我在這里有意義嗎?

如果您將級聯設置為無,那么您必須單獨保存對象。 那是乏味的工作。 使用映射時最好使用級聯。 如果你保存一個 HeroObject ,那么所有的對象也將被保存到數據庫中。 如果您刪除一個 HeroObject,那么與該 HeroObject 關聯的所有帳戶也將被刪除。 但是如果我們只想級聯只保存操作而不是刪除操作呢? 然后我們需要通過 Hibernate Cascade Types 明確指定..您可以訪問此鏈接以獲取更多信息。 [ https://howtodoinjava.com/hibernate/hibernate-jpa-cascade-types/][1]

@Noogui 是的,您必須手動執行操作,這些對象之間有一對多映射,Hero 可以有很多技能,並且一個技能可以有多種類型的冷卻設置(根據我的理解)所以現在如果休眠必須映射它們在連接表中,它們需要先保存。 但是你為什么要這樣做,除非在沒有任何特殊情況之前你應該從級聯操作中受益。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM