繁体   English   中英

Hibernate:级联删除子集合

[英]Hibernate: cascade deletion of a child collection

假设我有2个Java对象:Parent和Child。 它们之间的关系是Child - > Parent = many-to-one ,即一些Child对象可以与同一个Parent关联。

Child对象持有对其Parent的引用,而Parent对象没有字段来处理其子对象。

在Hibernate中导致在Child映射中具有多对一元素; 父映射不包含一对多条目,因为不需要Parent对象具有引用其所有Child对象的集合字段。

现在,当删除Parent时,Oracle抛出一个异常,即当有引用它的子实体时,不能删除该实体。

使用此对象模型,是否有一种方法可以在删除后者时,以casacadely方式删除属于Parent对象的所有Child对象?

1>对Child < - > parent进行双向映射。 提到级联删除。

2>您知道谁是此父级的子对象,首先删除此父级的所有子级,然后尝试删除父级。

编辑:

查看此示例链接

Hibernate双向示例

班级家长

import java.util.Set;  

    import javax.persistence.*;  

    @Entity  
    @Table(name = "Parent")  
    public class Parent{  

        @Id  
        @GeneratedValue  
        private Integer id;  

        private String name;  

        @OneToMany(mappedBy="Child", cascade=CascadeType.ALL)  
        private Set<Child> child;  
}

考虑称为孩子的第二类

import javax.persistence。*;

@Entity  
@Table(name = "Child")  
public class Child{  

    @Id  
    @GeneratedValue  
    private Integer id;  

    private String lastname;  

    @ManyToOne  
    @JoinColumn(name = "id")  
    private Parent parent;  
}

只需在POJO中进行更改,就不会抛出异常

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM