[英]Many-To-Many with only one Collections in the same entity?
我有以下实体:
@Entity
@Table(name = "users")
public class User {
...
private List<User> connections;
...
}
假设有用户A和B。 用户A决定将用户B添加到他的连接列表中。 A的连接列表中必须包含用户B和B的连接列表必须包含用户A。
考虑到我的业务逻辑,我得出结论,必须使用多对多关系。 我在Stackoverflow上发现了这个问题( 链接 ),但这并不是我一直在寻找的东西。 我只想在实体类中存储一个列表,而不是两个。
我该如何实施? 我假设必须有两个列表才能创建多对多关系,所以我想我的决定是不正确的。
假设你有一个表user_users(user_1_id,user_2_id)
在你的数据库之间的许多一对多的关系, user
是你可以做这样的事情:
@Entity
@Table(name = "users")
public class User {
private List<User> connections;
}
现在您可以像这样使用getConnection getter
:
@ManyToMany(targetEntity=User.class)
@JoinTable(
name="user_users",
joinColumns=@JoinColumn(name="user_1_id", nullable=false),
inverseJoinColumns=@JoinColumn(name="user_2_id", nullable=false)
)
public Set<ElementBean> getConnections() {
return connections;
}
您可以像这样向用户添加用户:
public void addConnection(User usr) {
if (usr !=null) {
connections.add(usr);
usr.getConnections().add(this);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.