vaannilaで与えられた例で注釈を使って多対多マッピングを試みました。Hibernateの多対多は同じレコードを複製します
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);
この事は正常に動作します。しかし、私はそれは表に再び学生Eswarを複製し、
Set<Course> courses = new HashSet<Course>();
courses.add(new Course("Science"));
Student student = new Student("Eswar", courses);
session.save(student);
既存の学生のように、後から別のコースを追加しようとした場合。
+------------+--------------+
| STUDENT_ID | STUDENT_NAME |
+------------+--------------+
| 1 | Eswar |
| 2 | Joe |
| 3 | Eswar |
+------------+--------------+
既存のEswarにコースを追加できませんか? この問題のお手伝いを本当にありがとうございます。
"私のように見える"という文を除いて、あなたの答えはOKです。 Session.saveは常に挿入しようとします。既存のエンティティは更新されません。 –
@JBNizet okz、私はもう一度見て、実際に私の場合オブジェクトは、オブジェクトのプライマリキー値の存在に基づいて、保存または更新されました....私はそれを再度チェックし、私たちはsession.saveOrUpdateを使用していたインスタンス)メソッド..... 訂正ありがとう..... – Zohaib
ZohaibとJB Nizet、あなたの素晴らしいサポートに感謝します! saveOrUpdate()でうまくいきました。 もう一度お返事いただきありがとうございます。 :) –