1

尝试删除 onetoone 时遇到问题。因此,我想删除与 PageImage 具有一对一关系的“Page”对象,但如果失败,并告知由于“PAGE_IMAGES__PAGES_FK”而这是不可能的。

现在,我真的不明白这里有什么问题,我正在使用级联。

休眠 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);失败并出现异常“约束失败”

4

1 回答 1

2

在您的映射中,PageImage 是关系的所有者,因为 mappedBy = "page"

因此,您有: page 引用 pageImage pageImage 引用 page

您尝试删除孩子因此例外。如果您尝试删除 pageImage 它很可能会起作用。

于 2014-01-24T20:13:21.007 回答