JPA防止在删除引荐时对实体进行取消引用

时间:2018-06-22 04:38:40

标签: hibernate jpa

在此之前,有一个非常类似的问题。 Hibernate set foreign key to null when delete entity 它甚至有一个公认的答案,可以避免在Page.modelViews端触发的插入和更新中使用该列,从而避免使FK无效。

问题和答案都存在问题,在此示例中,关系的双方都是拥有方!哪个AFAIK不好?例如,“ Pro JPA 2”这样说:“没有连接列的那一面称为非拥有或反面。”

让我们稍微修改一下示例。让我们制作“私有页面页面”;拥有方,而Set <>相反(... mappedBy = ...)。在这种情况下,反面不能用@JoinColumn注释。 我们该如何解决?没有级联删除,就是这样。

在大致指定了反面的情况下,最初问题的代码大致如下:

@Entity
public class ModelView {
    @ManyToOne
    @NotNull
    private Page page;
}

@Entity
public class Page {
    @OneToMany(mappedBy = "page")
    private Set<ModelView> modelViews = new HashSet<ModelView>();
}

并考虑我们要删除Page实体。我们如何防止JPA将ModelViews中所有实体的ModelView.page设置为null?

0 个答案:

没有答案