Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多对多关系(hibernate)中删除子行时如何防止删除父行_Hibernate_Spring Boot_Jpa - Fatal编程技术网

在多对多关系(hibernate)中删除子行时如何防止删除父行

在多对多关系(hibernate)中删除子行时如何防止删除父行,hibernate,spring-boot,jpa,Hibernate,Spring Boot,Jpa,我有两个类“课程”和“学生”,创建了三个表(学生、课程、学生课程),我试图做的是在(学生课程)表中删除与该学生关联的课程,而不删除该学生 public class Course { @Id @GeneratedValue private int id; @ManyToMany(mappedBy = "courses", fetch = FetchType.EAGER,cascade = {CascadeType.ALL}) private S

我有两个类“课程”和“学生”,创建了三个表(学生、课程、学生课程),我试图做的是在(学生课程)表中删除与该学生关联的课程,而不删除该学生

public class Course {

    @Id
    @GeneratedValue
    private int id;

    @ManyToMany(mappedBy = "courses", fetch = FetchType.EAGER,cascade = 
    {CascadeType.ALL})
    private Set<Student> students;
}
公共课{
@身份证
@生成值
私有int-id;
@ManyToMany(mappedBy=“courses”,fetch=FetchType.EAGER,cascade=
{CascadeType.ALL})
私立学校学生;
}
k

@实体
公立班学生{
@身份证
@生成值
私有int-id;
@ManyToMany(cascade={CascadeType.ALL})
@JoinTable(name=“stud\u course”,joinColumns={@JoinColumn(name=“student\u id”,
referencedColumnName=“id”)},inverseJoinColumns={@JoinColumn(name=“course\u id”,
referencedColumnName=“id”)})
私人设置的课程;

如果你不想删除相关对象,那么就不要启用
级联类型。删除
功能!但是我想删除它们之间的关系,它会抛出外键约束失败要停止删除另一端,你就要删除愚蠢的级联类型。要解决约束,你就要发布你试图删除关系的方式
@Entity
public class Student {

@Id
@GeneratedValue
private int id;


@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name = "stud_course", joinColumns ={ @JoinColumn(name = "student_id",
        referencedColumnName = "id")}, inverseJoinColumns = {@JoinColumn(name = "course_id",
        referencedColumnName = "id")})
private Set<Course> courses;