在多对多关系(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;