删除多个关系spring数据jpa中的记录

删除多个关系spring数据jpa中的记录,spring,spring-data,spring-data-jpa,Spring,Spring Data,Spring Data Jpa,我有两个实体。A和B.A和B之间的关系是@manytomy。所以我为项目所需的@manytomy关系引入了第三个实体C 我的实体类如下所示 @Entity class A { @OneToMany(cascade = CascadeType.ALL, mappedBy = "a") List<C> cList; } @Entity class B { @OneToMany(cascade = CascadeType.ALL, mappedBy = "b")

我有两个实体。A和B.
A
B
之间的关系是
@manytomy
。所以我为项目所需的
@manytomy
关系引入了第三个实体
C

我的实体类如下所示

@Entity
class A
{
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "a")
    List<C> cList;
}

@Entity
class B
{
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "b")
    List<C> cList;
}

@Entity
class C
{
    @ManyToOne
    @JoinColumn(name = "ref_a")
    A a;

    @ManyToOne
    @JoinColumn(name = "ref_b")
    B b;
}
@实体
甲级
{
@OneToMany(cascade=CascadeType.ALL,mappedBy=“a”)
列表cList;
}
@实体
B类
{
@OneToMany(cascade=CascadeType.ALL,mappedBy=“b”)
列表cList;
}
@实体
C类
{
@许多酮
@JoinColumn(name=“ref_a”)
A A;
@许多酮
@JoinColumn(name=“ref_b”)
B B;
}
现在,我想删除实体
A
B
的记录,然后它应该从
C
中删除相应的记录。 但是当我删除
A
B
的记录时,它会显示

无法删除或更新父行:外键约束失败


它需要从
A
B
中删除记录并从
C
中删除相应记录的其他配置是什么?

您不必创建实体来映射多对多表。这里有很多JPA注释。下面是一个如何做的示例

@Entity
public class Team {
    @ManyToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST }, mappedBy="teams")
    private List<Match> matches;
}

@Entity
public class Match {
    @ManyToMany(cascade = { CascadeType.MERGE, CascadeType.PERSIST })
    @JoinTable(
            name="MATCH_TEAM",
            joinColumns={@JoinColumn(name="MATCH_ID", referencedColumnName="ID")},
            inverseJoinColumns={@JoinColumn(name="TEAM_ID", referencedColumnName="ID")})
    private List<Team> teams;
}
@实体
公开课小组{
@ManyToMany(cascade={CascadeType.MERGE,CascadeType.PERSIST},mappedBy=“teams”)
私人列表匹配;
}
@实体
公开课比赛{
@ManyToMany(cascade={CascadeType.MERGE,CascadeType.PERSIST})
@可接合(
name=“比赛团队”,
joinColumns={@JoinColumn(name=“MATCH_ID”,referencedColumnName=“ID”)},
inverseJoinColumns={@JoinColumn(name=“TEAM\u ID”,referencedColumnName=“ID”)}
私人名单小组;
}