程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Hibernate多对多,重复相同的记录大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Hibernate多对多,重复相同的记录?

开发过程中遇到Hibernate多对多,重复相同的记录的问题如何解决?下面主要结合日常开发的经验,给出你关于Hibernate多对多,重复相同的记录的解决方法建议,希望对你解决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,请注明来意。