為什么這兩句話都要寫。
為什么雙向的代碼都要寫啊?我測試只寫setgrade或者只寫getStudents().add,數據庫記錄都是正常的?。恐粚懸环N不行嗎?
stu1.setGrade(gra);
stu2.setGrade(gra);
gra.getStudents().add(stu1);
gra.getStudents().add(stu2);
為什么雙向的代碼都要寫啊?我測試只寫setgrade或者只寫getStudents().add,數據庫記錄都是正常的?。恐粚懸环N不行嗎?
stu1.setGrade(gra);
stu2.setGrade(gra);
gra.getStudents().add(stu1);
gra.getStudents().add(stu2);
2016-05-05
舉報
2017-06-08
沒有配置級聯:
配置了級聯
看起來就這個區別
2017-05-28
剛才看了后面的內容,這么寫是為了后面講的級聯,為了級聯所以兩個都要寫
這里,如果grand和student都做save的話,只寫一個就可以了,偷了關聯的懶,少寫一個關聯
配置級聯后,只要save一個就可以了,兩者都是偷懶,級聯偷了save的懶
2017-05-28
我也覺得是重復的,這兩條語句都是為了包裝插入數據庫的時候都能有對應的值,如果一個就能實現,沒必要寫兩條
2016-12-01
我也有相同的疑問,我測試過只要寫setGrade就行了。再次查詢的時候也是可以通過Grade查找到Students的。
2016-05-05
還可以級聯操作。。往后看看就知道
2016-05-05
雙向的一方放棄關系的維護和單向意義不相同!
單向只能保證你可以通過一個對象(A)導航到另一個對象(B)。
當你在實際的業務中需要通過另一個對象(B)導航到一個對象(A)的時候,你怎么辦???
還有關于inverse="true",它的作用是在一對多雙向關聯關系中使一方放棄維護到對方的關系(抽象)。其實就是減少重復執行多余的SQL語句
簡單的說就是很好的我可以通過Grade找到student,也可以通過student找到Grade