1
我在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,所有的關係應該是雙向的嗎?
而且orphanRemoval = true屬性應該加 – mstzn
是的!這看起來不錯。但還有另一個問題。班主任有一個屬性@ManyToMany私人清單課程;然後,我不能改變Course.class的結構;我的意思是,如果我想訪問一個教師是T的主題,我只需編寫T.getCourse()。get(0).getSubject()。getName();所以,如果我按照你說的方式改變課程,我將如何獲得教師T的科目? –
Quarktum
我還沒有說修改課程的任何內容(變量命名除外) - 所以老師對主題的訪問可以保持不變。 – kostja