我有一个名为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关系。
我该怎么办?