我有一個名爲Photo的模型類,和其他幾個類,代表不同類型的照片來源。照片類必須保持不可知其源類的,所以現在,我已經表示的關係是單向的OneToOne一個源的一面:刪除父母,當孩子被刪除(單向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;
}
如果我刪除InstagramPhoto情況下,其相關的照片實例也得到刪除。然而,相反的操作會引發異常。我無法刪除Photo實例。它給我以下錯誤:
Referential integrity constraint violation: "FK9366567567B45F0BDBD6: PUBLIC.INSTAGRAMPHOTO FOREIGN KEY(PHOTO_ID) REFERENCES PUBLIC.PHOTOS(ID) (4)";
P.S.雖然,我不想將照片與PhotoSource相關聯,但我也嘗試過使用另一個@OneToOne。然後,代碼不會編譯,並說無法創建與PhotoSource.photo的mappedBy關係。
我該怎麼辦?