有人会帮忙吗?
我正在从hibernate ManyToMany协会的课程中删除教师时遇到问题。我可以在课程中添加教师但不能删除它。我有一个视图,显示课程及其相关教师的模型。当我坚持一位新老师并将他加入课程时,一切正常。但是当我删除老师时,视图仍然会与老师一起显示课程。
// inside the teacher class
@ManyToMany(mappedBy = "teachers")
private Set<Course> courses = new HashSet<>();
// inside the course class
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name="COURSE_TEACHERS",
joinColumns={@JoinColumn(name="COURSE_ID")},
inverseJoinColumns={@JoinColumn(name="ID")})
private Set<Teacher> teachers = new HashSet<>();
//here is how I am trying to remove the teacher from the course
@Override
public void removeTeacherFromCourse(Course course, Teacher teacher) {
course.getTeachers().remove(teacher);
updateCourse(course);
}
答案 0 :(得分:0)
您遇到的问题是您对教师进行级联更改,但不会对课程进行级联更改。如果你从另一个角度来解决这个问题,那么你的期望也应该如此。
您不需要从课程中删除教师,而是需要从教师中删除课程,让Hibernate以这种方式级联更改。
JoinTable
这是因为您在哪里放置了注释。因为您已经为教师设置了dependencies {
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.1'
testCompile 'junit:junit:4.12'
}
声明,这就是“拥有”的对象的一面。关系。您需要在该侧进行所有操作,以便将更改级联到其他对象。