假设我们有User实体类。用户可以成为其他用户的朋友。如何在不创建名为Connection的新实体或在数据库中创建多个条目的情况下映射此自引用集合字段?
@Entity
public class User {
...
@ManyToMany
private Collection<User> friends;
...
}
USER_ID-FRIEND_ID
1 - 2
2 - 1 (duplicate... I don't need it)发布于 2011-12-20 03:31:04
您不能-您需要在数据库中的两个记录。
实际上,对于友谊关系,我会说像neo4j这样的图形数据库是合适的。在这里,你有了两个用户,并简单地添加了一个边缘“朋友”。
发布于 2011-12-20 03:34:00
以下是我的ElementEntity代码的快照:
@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与父的关系
发布于 2011-12-20 03:36:57
至少你需要一个relational table。
因此,您有一个USER表和一个FRIENDS
user_id friend_id
1 2但是@Bozho的答案比我的好多了(neo4j)。
https://stackoverflow.com/questions/8566400
复制相似问题