1
我試過Hibernate映射多對多使用註釋在vaannila中給出的例子。休眠多對多,重複相同的記錄
Set<Course> courses = new HashSet<Course>();
courses.add(new Course("Maths"));
courses.add(new Course("Computer Science"));
Student student1 = new Student("Eswar", courses);
Student student2 = new Student("Joe", courses);
session.save(student1);
session.save(student2);
這件事工作正常。但是,如果我稍後嘗試添加其他課程,但對於現有學生來說,
Set<Course> courses = new HashSet<Course>();
courses.add(new Course("Science"));
Student student = new Student("Eswar", courses);
session.save(student);
它在表中再次複製學生Eswar。
+------------+--------------+
| STUDENT_ID | STUDENT_NAME |
+------------+--------------+
| 1 | Eswar |
| 2 | Joe |
| 3 | Eswar |
+------------+--------------+
我不能將課程添加到現有的Eswar嗎? 我真的很感謝你對這個問題的幫助。
你的回答是可以的,除了以「在我看來」開頭的句子。 Session.save總是試圖插入。它不更新現有的實體。 –
@JBNizet okz,我再次查找它,實際上在我的情況下,對象是保存或更新,基於對象的主鍵值的存在....我再次檢查並發現我們使用session.saveOrUpdate(實例)方法..... 感謝您糾正..... – Zohaib
Zohaib和JB Nizet,非常感謝您的大力支持! 現在它使用saveOrUpdate()工作正常。 再次感謝您的幫助! :) –