EclipseLink @OneToOne 关系 CascadeType 不应删除

EclipseLink @OneToOne relation CascadeType should not remove

我有两个实体 class,它们之间存在 @OneToOne 关系。数据库中还有一个外键。

class Entity1 {
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "entity1")
    private Entity2 entity2;
}

class Entity2 {
    @JoinColumn(name = "DB_FIELD_NAME", referencedColumnName = "ENTITY_1_PK")
    @OneToOne(optional = false)
    private Entity1 entity1;
}

如您所见,有 cascade = CascadeType.ALL 参数。当然,如果我删除我的 entity1 对象:

em.remove(entity1)

它正在级联到我的实体 2,并且该对象也已从数据库中删除。我的问题是,我怎样才能不删除我的 entity2

我应该使用哪种 CascadeType

谢谢!

什么都没有。 如果你不想级联,就不要使用级联参数,它是optional.

class Entity1 {
    @OneToOne(mappedBy = "entity1")
    private Entity2 entity2;
}

class Entity2 {
    @JoinColumn(name = "DB_FIELD_NAME", referencedColumnName = "ENTITY_1_PK")
    @OneToOne(optional = true)
    private Entity1 entity1;
}