gpt4 book ai didi

java - 在 Play Framework 中删除父实体时,不为子实体调用 Model.delete()

转载 作者:行者123 更新时间:2023-11-29 08:45:24 25 4
gpt4 key购买 nike

在下面的代码中,我覆盖了 CityImage 类的 save()delete() 以便从中上传/删除图像从数据库中添加/删除它们时的 Amazon S3。

@Entity
public class City extends Model {

@Id
public Long id;

@OneToMany(cascade=CascadeType.ALL)
public List<CityImage> images;
}

@Entity
public class CityImage extends Model {

@Id
public Long id;

@ManyToOne
public City city;

@Override
public void delete() {
deleteFromAmazonS3();
super.delete();
}

@Override
public void save() {
super.save();
saveOnAmazonS3();
}
}

问题:当我在 City 对象上调用 delete() 时,我希望 Play/Ebean 调用 delete()所有引用它的 CityImage 对象,但这不会发生。有什么想法吗?

最佳答案

您应该将 orphanRemoval 添加到您的关联中。

@OneToMany(cascade=CascadeType.ALL, orphanRemoval=true)
public List<CityImage> images;

关于java - 在 Play Framework 中删除父实体时,不为子实体调用 Model.delete(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25700203/

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