我在 Hibernate 关系和 Save-Update-Delete 方面遇到了一些问题。可以说我有以下内容:
public class Subject{
@Id
private int ID;
private String Name;
//getters and setters
}
public class Grade{
@Id
private int ID;
private String Name;
//getters and setters
}
public class Course{
@Id
private int ID;
@ManyToOne
private Grade G;
@ManyToOne
private Subject S;
//getters and setters
}
public class Teacher extends User{
@ManyToMany
List<Course> Courses = new ArrayList<Course>();
//...
//getters and setters
}
问题是,我不能简单地删除一个主题,因为它有关系。我的意思是,当我删除一个主题时,所有具有该主题的课程也必须被删除。而且,如果删除了课程,则“属于”该课程的主题应该存在。成绩和课程也是如此。
我的解决方案(暂时)是:删除主题的方法,在删除主题本身之前调用删除具有该主题的所有课程的方法。
但我确信这不是正确的方法。我知道 CascadeType 应该可以解决这个问题,但我不知道该使用哪个,也不知道何时使用。
现在我们在谈论 Hibernate,所有的关系都应该是双向的吗?