栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

多对多hibernate反面被忽略

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多对多hibernate反面被忽略

假设您具有以下实体:

@Entitypublic class Student {    @ManyToMany    private Set<Course> courses;    ...}@Entitypublic class Course {    @ManyToMany(mappedBy = "courses")    private Set<Student> students;    ...}

所有者方是Student(因为它没有

mappedBy
属性)。反面是Course((因为它具有
mappedBy
属性)。

如果您执行以下操作:

Course course = session.get(Course.class, 3L);Student student = session.get(Student.class, 4L);student.getCourses().add(course);

Hibernate将在连接表中为学生4和课程3添加一个条目,因为您更新了关联的所有者方(

student.courses
)。

而如果您执行以下操作:

Course course = session.get(Course.class, 3L);Student student = session.get(Student.class, 4L);course.getStudents().add(student);

什么都不会发生,因为uou更新了关联(

course.students
)的反面,但忽略了更新所有者的面。Hibernate仅考虑所有者方。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/447499.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号