首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JPA中的自引用字段映射

JPA中的自引用字段映射
EN

Stack Overflow用户
提问于 2011-12-20 03:28:20
回答 4查看 8.5K关注 0票数 6

假设我们有User实体类。用户可以成为其他用户的朋友。如何在不创建名为Connection的新实体或在数据库中创建多个条目的情况下映射此自引用集合字段?

代码语言:javascript
运行
复制
@Entity
public class User {
...
@ManyToMany
private Collection<User> friends;
...
}

USER_ID-FRIEND_ID
1 - 2
2 - 1 (duplicate... I don't need it)
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-20 03:31:04

您不能-您需要在数据库中的两个记录。

实际上,对于友谊关系,我会说像neo4j这样的图形数据库是合适的。在这里,你有了两个用户,并简单地添加了一个边缘“朋友”。

票数 2
EN

Stack Overflow用户

发布于 2011-12-20 03:34:00

以下是我的ElementEntity代码的快照:

代码语言:javascript
运行
复制
@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY)
private List<ElementEntity> children;

@JoinColumn(name = "ParentId", referencedColumnName = "ElementId")
@ManyToOne(fetch = FetchType.LAZY)
private ElementEntity parent;

数据库中有字段的位置:

  • ElementId -主key;
  • ParentId与父

的关系

票数 8
EN

Stack Overflow用户

发布于 2011-12-20 03:36:57

至少你需要一个relational table

因此,您有一个USER表和一个FRIENDS

代码语言:javascript
运行
复制
user_id friend_id
   1      2

但是@Bozho的答案比我的好多了(neo4j)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8566400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档