在下面的代码中,我覆盖了 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/