저는 Photo라는 모델 클래스와 여러 유형의 사진 소스를 나타내는 다른 클래스가 있습니다. 내가 InstagramPhoto 인스턴스를 삭제하면자식이 삭제되면 상위 삭제 (단방향 OneToOne)
@Entity
public class Photo extends Model {
...
}
@Entity public class InstagramPhoto extends PhotoSource {
@Id
public String id;
}
@MappedSuperclass
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class PhotoSource extends GenericModel {
@OneToOne(cascade=CascadeType.REMOVE)
public Photo photo;
}
은, 관련 사진 인스턴스도 가져옵니다 사진 클래스는 내가 단방향 OneToOne의 하나로서 관계를 소스의 측면을 표현했다, 지금은 따라서 소스 클래스의 불가지론 남아 있어야 삭제됨 그러나 반대의 작업에서는 예외가 발생합니다. 사진 인스턴스를 삭제할 수 없습니다. 그것은 나에게 다음과 같은 오류를 준다 :
Referential integrity constraint violation: "FK9366567567B45F0BDBD6: PUBLIC.INSTAGRAMPHOTO FOREIGN KEY(PHOTO_ID) REFERENCES PUBLIC.PHOTOS(ID) (4)";
추신. PhotoSource에 사진을 연결하지 않기를 원하지만 다른 @OneToOne을 사용하여 사진을 시도해 보았습니다. 그런 다음 코드가 컴파일되지 않고 PhotoSource.photo의 mappedBy 관계를 만들 수 없다고 말합니다.
어떻게해야합니까?