首页 > 解决方案 > 休眠级联中的多对一=“无”

问题描述

如果我有一个与其他对象存在多对一关系的对象,并且 CASCADE 的设置设置为 NONE,我必须单独保存这些对象吗?

例如

在 HeroObject 里面有一个 SkillObject,在 SkillObject 里面有 CooldownObject。如果我想将 HeroObject 持久化到数据库中,我是否必须单独保存 SkillObject 和 CooldownObject.

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

因此,如果 CASCADE 设置为“NONE”,则在此示例中我必须执行 3 次 saves()。我在这里有意义吗?

标签: javaspringhibernateweb-servicessoap

解决方案


如果您将级联设置为无,则必须单独保存对象。这是一项乏味的工作。使用映射时最好使用级联。如果你保存一个 HeroObject ,那么所有的对象也会被保存到数据库中。如果您删除一个 HeroObject,那么与该 HeroObject 关联的所有帐户也将被删除。但是如果我们只想级联只保存操作而不是删除操作怎么办。然后我们需要通过 Hibernate Cascade Types 明确指定..您可以访问此链接以获取更多信息。[ https://howtodoinjava.com/hibernate/hibernate-jpa-cascade-types/][1]


推荐阅读