gpt4 book ai didi

java - 从数据库中删除孤立的实体

转载 作者:行者123 更新时间:2023-12-01 12:52:57 24 4
gpt4 key购买 nike

我不相信以下内容存在,但认为值得一问。

假设我有一个实体 Contact具有以下属性:

@OneToMany(cascade = {CascadeType.ALL})
private List<Address> addresses;

假设 Address是唯一的,因此它不能属于任何其他 Contact 。显然我可以使用级联,以便在 Contact 上执行操作级联到 Address但是否有注释可以删除 Address如果从 List<Address> addresses 中删除它,则从数据库中删除它.

EG。一个Contact List<Address> addresses属性包含 3 Address值(value)观; Address#1 , Address#2Address#3 .

Address#3被删除并 Contact使用实体管理器合并回数据库。此时Address#3仍然存在于数据库中,但不再与任何内容关联。我一直手动处理这个问题,但让我印象深刻的是,这是一个相对常见的情况(至少对我来说),并且可能有一个注释可以处理这个问题。

最佳答案

尝试使用orphan removal option :

@OneToMany(cascade = {CascadeType.ALL}, , orphanRemoval="true")
private List<Address> addresses;

当您从列表中删除地址时,这将导致地址被删除。

关于java - 从数据库中删除孤立的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24084175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com