使用Hibernate更新任何子级时更新父级

时间:2020-07-15 10:00:43

标签: hibernate jpa spring-data

我有一个OneToMany关系,孩子们也有OneToMany关系...

我需要通过最后一次修改来订购祖父,但是修改可以是子代或孙子……所以,我有一个修改后的列,但是当我更改子代或孙子时,我需要对其进行更新。

有什么方法可以自动将列从子代/孙代更新为父代?

1 个答案:

答案 0 :(得分:0)

对我来说,这是其中实体的父属性必须具有Eager类型与级联合并类型的关系的情况之一。

作为父级渴望属性,在3级关系(祖父,父亲,孙子)中,您最多可以带3个不会损害内存的对象。

这与级联类型合并一起使您可以执行以下操作:

granchild.setField1(1)
granchild.setField2(2)
granchild.setDateMod(new Date());
granchild.getParent().setDateMod(new Date());
granchild.getParent().getParent().setDateMod(new Date());

entityManager.merge(granchild);

通过这种方式,您将更新3个对象的审核字段。

我们倾向于认为我们总是必须使用懒惰关系,在大多数情况下都是这样,但是有时在实体很少的情况下,使用渴望的关系类型可以使我们的生活更轻松。