在同一个实体中声明多个@oneToMany的方法,以避免org.hibernate.AssertionFailure:无法执行un-delete

时间:2017-04-12 06:55:11

标签: hibernate jpa hibernate-onetomany

我一直在使用代码,在这里你可以看到我为两个不同的实体使用了两个@oneToMany因为这个原因,它向我显示了的错误org.hibernate.AssertionFailure:无法例如执行取消删除“
我正在寻找解决方案,然后我来看看以下帖子 org.hibernate.AssertionFailure: Unable to perform un-delete for instance 这篇文章对于理解我的问题很有用,但解决方案并不清楚。这里的第一个解决方案是,但他或她只是说 -  “重新排列代码,以便我首先从C到A删除引用,然后继续删除B和A似乎可以解决这个问题。” 但是如何?????

这是我的代码,我认为这已经足够了

@Entity
@Table(name="c")
public class C extends BaseEntity{
    /**
     * 
     */
    private static final long serialVersionUID = -5610744565502850451L;
    private String cCode;
    private String cTitle;
    private String cOverview;
    @ManyToOne
    @JoinColumn(name="user_id")
    private UserEntity userEntity;
    @OneToMany(mappedBy="cEntity",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
    private List<LeEntity> leEntity;
    @OneToMany(mappedBy="cEntity",cascade=CascadeType.ALL)
    @LazyCollection(LazyCollectionOption.FALSE)
    private List<LaEntity> laEntity;

1 个答案:

答案 0 :(得分:0)

要处理正确的双向@OneToMany关系,您需要保持双方同步,以便删除一个父级,子级不保留它,当子级被删除时,父级也将删除它。

这个概念在https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#associations-one-to-many

中得到了很好的解释