我有一个Person
实体,它有Set<Address>
和OneToManyMap。
@OneToMany(
mappedBy = "person",
fetch = FetchType.LAZY,
cascade = CascadeType.ALL
)
private Set<Address> addresses = new HashSet<>();
地址类具有
@ManyToOne
@JoinColumn(name = "person_id")
private Person person;
现在我可以成功地在DB中添加记录了。
我如何才能实现清除地址散列集应该导致删除该人的地址记录。
例如:在我的服务层中,下面的代码不会删除DB中的地址。
Person p = personRepository.findBy(1).get();
p.getAddresses().clear();
personRepository.save(p);
实现这一目标的正确途径是什么?
3条答案
按热度按时间jm81lzqq1#
我不得不这么做才能成功。
c2e8gylq2#
移除属性处理子实体与父实体的移除。
或
jdgnovmf3#
通常,如果你想从父类中删除一个子类,你应该通过删除子类的记录来实现。在这种情况下,您可以删除addressRepository中的地址: