繁体   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