我有一個名爲'Department'的實體和另一個名爲'student'的實體。我知道這個部門會有很多學生,並且在數據庫中這兩個表格之間應該有聯繫。但在我的項目中,數據庫表已經存在,部門和學生表之間沒有關係(外鍵)。Hibernate中的ManyToOne關係,不在數據庫中
在實體類,student.java,有寫作的關係,
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = 'DeptId', nullable = false, insertable = false, updatable = false)
Department department
我感到困惑這個現有的代碼。
當我寫了一個測試,我取由DEPTID從DB部門,並設置學生實體,
student.setDepartment(department);
這不填充在學生表中的數據庫列「DEPTID」。
既然沒有學生收集處,我無法設置學生爲,
department.addStudents(student);
我不知道我們是否能堅持沒有數據庫中的表之間的關係的@ManyToOne關係。
請讓我知道,這樣學生表中的「DEPTID」欄填入正確的數據,我可以怎樣解決這個問題。
由於提前, BS
一起使用,而不是混淆自己的,你爲什麼不去做一個簡單的事情?通過將外鍵應用到引用「DEPARTMENT」表的主鍵的「STUDENT」表中,在數據庫中建立一對多關係(DEPARTMENT => STUDENT)。如果數據庫沒有適當的約束,映射在Hibernate中可能不能正常工作。 – Lion