本文介绍了@ManyToOne JPA协会和级联...如果我删除对象不知道会发生什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我仍然不是级联删除操作的工作方式非常清晰。我在想,如果我有这个会发生什么:

 类myBean {    @ManyToOne(取= FetchType.LAZY,的cascade = CascadeType.ALL)
        公共Cliente getClienteDiAppartenenza(){
            返回clienteDiAppartenenza;
        }}
类Cliente {
@OneToMany(的cascade = CascadeType.ALL,orphanRemoval = TRUE,取= FetchType.LAZY)
    公开名单< myBean> getMyBeans(){
        返回myBeans;
    }
}

如果我删除与此属性myBean我不知道如果链接Cliente将(在多对一怪异)太删除或内部Cliente集合将被更新,并myBean的该实例中删除,然后将其保存。

会发生什么事? Hibernato文档是不是这个很清楚......


解决方案

这不是Hibernate的东西,这是JPA 2.0标准的一部分。你在你的注释两个方面,一方面是利用orphanRemoval的。

您使用orphanRemoval当父实体拥有子实体的创建和销毁的控制。在UML这将是组合物的情况下是由整个部分的一个强有力的所有权和concident寿命。在第2.9 JPA 2.0规范:实体的关系说:

A second aspect would be the use of cascase=REMOVE when no orphanRemoval is implied.

The section 3.2.3: Removal contains details about the remove process:

这篇关于@ManyToOne JPA协会和级联...如果我删除对象不知道会发生什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 20:29