Web Services Hibernate中多对一级联=“none”

6xfqseft  于 2022-11-15  发布在  其他
关注(0)|答案(2)|浏览(102)

如果某个对象与其他对象之间存在多对一关系,并且CASCADE设置为NONE,我是否必须单独保存这些对象?
例如
在HeroObject中有一个SkillObject,在SkillObject中有一个CooldownObject。如果我想在数据库中持久化HeroObject,我是否必须单独保存SkillObject以及CooldownObject?
英雄对象有自己的英雄Dao.saveMethod(),技能对象也有自己的技能Dao.saveMethod(),冷却对象也有自己的冷却Dao.saveMethod()。
因此,如果CASCADE被设置为“NONE”,我必须在这个例子中执行3次save()。

n3ipq98p

n3ipq98p1#

如果将层叠设置设置为none,则必须单独保存对象。这是一项乏味工作。最好在使用Map时使用层叠。如果保存一个英雄对象,那么所有的对象也将被保存到数据库中。如果你删除一个英雄对象,那么所有与该英雄对象相关的帐户也将被删除。但是如果我们只想级联保存操作而不级联删除操作呢?然后我们需要明确指定Hibernate级联类型。您可以访问此链接了解更多信息。https://howtodoinjava.com/hibernate/hibernate-jpa-cascade-types/

p5fdfcr1

p5fdfcr12#

@Noogui是的,你必须手动执行操作,你有一对多的Map这些对象,英雄可以有很多技能,一个技能可以有很多类型的冷却设置(根据我的理解)所以现在如果休眠必须Map到连接表,他们需要先保存。但为什么你这样做,除非直到没有任何例外情况,你应该受益于级联操作。

相关问题