大佬教程收集整理的这篇文章主要介绍了Hibernate多对多,重复相同的记录,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
您首先需要从数据库中获取student,然后将课程添加到该对象,然后保存获取的对象。
这样,您正在创建一个新的student对象,该新的student对象在“ ID”实例变量中具有null。在我看来,Hibernate必须将此实例变量映射到主键以进行查找,如果找到ID,则记录将更新,否则将插入新记录。
是的,如果您需要为现有学生添加课程,则您可能希望首先从获取的学生对象中获取课程,然后在该课程中添加课程,然后保存…否则,新哈希集将仅包含新课程和以前的记录将被覆盖。
我尝试了使用“注释”对Hibernate进行“多对多映射”以及vaAnnila中给出的示例。
http://www.vaAnnila.com/hibernate/hibernate-example/hibernate-mapping-many-
to-many-using-Annotations-1.html
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中吗?非常感谢您对这个问题的帮助。
以上是大佬教程为你收集整理的Hibernate多对多,重复相同的记录全部内容,希望文章能够帮你解决Hibernate多对多,重复相同的记录所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。