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

Hibernate(4.1.2)和Spring(3.1.2)– ManyToMany关系不会在JoinTable中存储记录

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

Hibernate(4.1.2)和Spring(3.1.2)– ManyToMany关系不会在JoinTable中存储记录

唯一正确的方法是第一种:

@ManyToMany(mappedBy = "users")public Set<Title> getTitles() {    return titles;}...@ManyToMany@JoinTable(name = "tb_title_user",joinColumns = @JoinColumn(name = "title_id"),inverseJoinColumns = @JoinColumn(name = "user_id"))public Set<User> getUsers() {    return users;}

反面使用该

mappedBy
属性说:“我是反面。请查看
users
目标实体中的属性,以查看此关联如何映射。”

您在做错的是,您只能在测试中修改反面。JPA / Hibernate仅考虑所有者方是否知道关联。所以不要做

user.getTitles().add(title);

你应该做

title.getUsers().add(user);

甚至两者都做,以确保对象图是连贯的。

我真的希望这个方法可以作为类似问题的参考,但是我对此表示怀疑,因为我已经回答了无数次此问题,并且它一遍又一遍地出现,尽管在文档中已明确说明:

如果关联是双向的,则一侧必须是所有者,而一侧必须是反向端(即,在更新关联表中的关系值时,它将被忽略):

[遵循一个示例,该示例在双向多对多关联的每一侧都带有适当的注释]



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

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

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