首页 > 解决方案 > 使用 Spring Data Jpa 保存相反实体时集合未更新

问题描述

我有两个处于一对多关系的实体:

父实体:

@OneToMany(mappedBy = "parent")
public List<Child> getChildren()

子实体:

@ManyToOne
@JoinColumn(name = "PARENT_ID")
public Parent getParent()

考虑以下代码(内部事务):

Child child = childRepository.findById(id).get();
Parent parent = child.getParent();
child.setParent(null);
childRepository.saveAndFlush(child);
List<Child> children = parent.getChildren();

在这种情况下,“子”列表仍将包含子实体,尽管它已被删除。我尝试刷新存储库,保存父实体,甚至从 parentRepository 获取一个新实体,但这些都不起作用。

为什么子列表在保存时未更新,如何确保集合是最新的而不显式删除实体(我想对集合中的实体进行进一步操作)?

标签: springjpaspring-data-jpaspring-datapersistence

解决方案


推荐阅读