2014-09-06 2 views
2

아래 코드에서 CityImage 클래스의 경우 save()delete()을 덮어 씀으로써 Amazon S3가 추가/제거 될 때 이미지를 업로드/제거합니다. 데이터베이스에서.Play Framework에서 부모가 삭제 될 때 Model.delete()가 호출되지 않음

@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()를 호출 할 때, 나는 재생/Ebean 그것을 참조하는 모든 CityImage 객체에 delete() 전화를 기대하지만,이 발생하지 않습니다. 어떤 아이디어?

답변

0

협회에 orphanRemoval을 추가해야합니다.

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