尝试删除onetoone时遇到问题。 所以我想删除与PageImage具有一对一关系的“Page”对象,但是如果失败,并且由于“PAGE_IMAGES__PAGES_FK”而告诉这是不可能的。
现在,我真的不明白这里有什么问题,我正在使用cascade all。
Hibernate 4.1 + Spring 3.1 + Mysql
@Entity
@Table(name = "PAGES")
public class Page
....
@NotNull
@BatchSize(size = 200)
@OneToOne(mappedBy = "page", fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
public PageImage getImage() {
return image;
}
....
@Entity
@Table(name = "PAGE_IMAGES"
@NotNull
@OneToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "PAGE_ID", nullable = false, updatable = false)
@ForeignKey(name = "PAGE_IMAGES__PAGES_FK")
public Page getPage() {
return page;
}
entityManager.remove(myPage);
失败,异常“约束失败”
答案 0 :(得分:2)
PageImage是关系的所有者,因为mappedBy =“page”
因此,你有: 页面有对pageImage的引用 pageImage有对页面的引用
您尝试删除子项,因此异常。如果您尝试删除pageImage,它很可能会起作用。