在下面的代码中,我为save()
类覆盖delete()
和CityImage
,以便在从数据库添加/删除图像时从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();
}
}
问题:当我在delete()
对象上调用City
时,我希望Play / Ebean在引用它的所有delete()
个对象上调用CityImage
,但是这个没有发生。有什么想法吗?
答案 0 :(得分:0)
您应该将orphanRemoval
添加到您的关联中。
@OneToMany(cascade=CascadeType.ALL, orphanRemoval=true)
public List<CityImage> images;