如何从两个实体中删除OneToMany关系?

时间:2019-07-12 06:32:24

标签: java sql hibernate jpa java-ee

我在两个不同的类X和Y中具有相同的OneToMany关系,当我尝试删除它时,有一个例外:javax.persistence.EntityNotFoundException: Unable to find with id... <entity>

我也有一个带有两个ManyToOne关系的XY类,它嵌入了由X类的id和Y类的id组成的id。

我已经尝试过类似的操作,例如从X和Y类的列表中删除关联关系,将其合并,然后从XY类中删除该关系。我尝试用NotFoundAction.IGNORE添加注释@NotFound,它可以工作,但是我不能使用它。另外,我认为这并不能解决我的问题,类似于解决方法。

//from X class:
    @OneToMany(fetch = FetchType.EAGER, mappedBy = "x", cascade = CascadeType.ALL, orphanRemoval = true)
    @Fetch(FetchMode.SUBSELECT)
    private List<XY> xy;

//from Y class:
    @OneToMany(fetch = FetchType.EAGER, mappedBy = "y", cascade = CascadeType.ALL, orphanRemoval = true)
    @Fetch(FetchMode.SUBSELECT)
    private List<XY> xy;

//from XY class:
    @EmbeddedId
    private XYid xyid = new XYid();

    @MapsId("xId")
    @ManyToOne(optional = false)
    @JoinColumn(name = "x")
    private X x;

    @MapsId("yId")
    @ManyToOne(optional = false)
    @JoinColumn(name = "y")
    private Y y;

//from XYid class:
    private Integer xId;
    private Integer yId;

0 个答案:

没有答案