您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

与同一实体的Hibernate递归多对多关联

与同一实体的Hibernate递归多对多关联

@ManyToMany对自己来说相当令人困惑,因为您通常的建模方式与“hibernate”方式不同。您的问题是您缺少另一个收藏夹。

可以这样考虑-如果要“多对多”映射“作者” /“书”,则需要“书”上的“作者”集合和“作者”上的“书”集合。在这种情况下,您的“用户”实体代表关系的两端。因此您需要“我的朋友”和“朋友的”收藏集:

@ManyToMany
@JoinTable(name="tbl_friends",
 joinColumns=@JoinColumn(name="personId"),
 inverseJoinColumns=@JoinColumn(name="friendId")
)
private List<User> friends;

@ManyToMany
@JoinTable(name="tbl_friends",
 joinColumns=@JoinColumn(name="friendId"),
 inverseJoinColumns=@JoinColumn(name="personId")
)
private List<User> friendOf;

您仍然可以使用相同的关联表,但是请注意,join / inverseJon列在集合上交换。

“ friends”和“ friendOf”集合可能匹配,也可能不匹配(取决于您的“友谊”是否总是相互的),您当然不必在API中以这种方式公开它们,但这就是映射的方式它在hibernate状态。

其他 2022/1/1 18:14:08 有629人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶