Mysql OneToOne即使在级联All上也无法删除
我在尝试删除onetoone时遇到问题。 因此,我想删除与PageImage具有一对一关系的“Page”对象,但如果失败,则说明由于“Page_IMAGES__PAGES_FK”的原因,这是不可能的 现在,我真的不明白这里的问题是什么,我正在使用cascade all Hibernate4.1+Spring3.1+MysqlMysql OneToOne即使在级联All上也无法删除,mysql,hibernate,jpa,Mysql,Hibernate,Jpa,我在尝试删除onetoone时遇到问题。 因此,我想删除与PageImage具有一对一关系的“Page”对象,但如果失败,则说明由于“Page_IMAGES__PAGES_FK”的原因,这是不可能的 现在,我真的不明白这里的问题是什么,我正在使用cascade all Hibernate4.1+Spring3.1+Mysql @Entity @Table(name = "PAGES") public class Page .... @NotNull @BatchSize(size = 200)
@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)代码>失败,但在映射页面中出现异常“约束失败”自mappedBy=“page”以来,Image是关系的所有者
因此,你必须:
页面具有对pageImage的引用
pageImage具有对页面的引用
您试图删除这些子项,因此出现异常。很可能,如果您尝试删除页面图像,它就会正常工作 删除不必要的关联,用于删除级联。不必要的关联是什么意思?Cascade=All不应该完成所有工作(同时删除页面图像)?感谢您确保您在DB表中提供了关于删除的级联。