JPA如何为实体强制实施OneOnOne关系?

时间:2018-04-17 22:34:38

标签: java jpa eclipselink one-to-one

我有以下伪实体

public class Child {

    @OneToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="PARENT_ID")
    private Parent parent;

}

public class Parent {

    @OneToOne(fetch=FetchType.LAZY, mappedBy="parent",cascade=CascadeType.ALL)
    private Child child;

}

数据库:

PARENT
PARENT_ID, PARENT_NAME
1        , "John"
2        , "Bob"

CHILD
ID, PARENT_ID
1 , 1
2 , 2

现在我从DB加载Parent 1,并相应地获取Child 1。但后来我将Child 1父项设置为Parent 2并提交更改。 Child 1 PARENT_ID更改为2,但Child 2仍然具有PARENT_ID 2.所以DB看起来像这样:

CHILD
ID, PARENT_ID
1 , 2
2 , 2

在给定OneToOne关系的情况下,JPA是否有办法检测到父2已被重新分配给子1并使子2的父级为空?

运行EclipseLink

0 个答案:

没有答案