Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单个实体的多对多关系-Hibernate_Java_Database_Hibernate_Jakarta Ee_Entity - Fatal编程技术网

Java 单个实体的多对多关系-Hibernate

Java 单个实体的多对多关系-Hibernate,java,database,hibernate,jakarta-ee,entity,Java,Database,Hibernate,Jakarta Ee,Entity,我有一个简单的用户实体,希望实现与其他用户的多用户关系。该类如下所示: @Entity public class User { @Id @GeneratedValue private long id; private String username; @ManyToMany private List<User> friends; public long getId() { return id; }

我有一个简单的用户实体,希望实现与其他用户的多用户关系。该类如下所示:

@Entity
public class User {
    @Id
    @GeneratedValue
    private long id;

    private String username;

    @ManyToMany
    private List<User> friends;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public List<User> getFriends() {
        return friends;
    }

    public void setFriends(List<User> friends) {
        this.friends = friends;
    }

    public void addFriend(User user){
        if (friends==null) friends = new ArrayList<User>();
        friends.add(user);
    }
}
@实体
公共类用户{
@身份证
@生成值
私人长id;
私有字符串用户名;
@许多
私人名单朋友;
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
公共字符串getUsername(){
返回用户名;
}
public void setUsername(字符串用户名){
this.username=用户名;
}
公共列表getFriends(){
回报朋友;
}
公众朋友(列出朋友){
这个。朋友=朋友;
}
public void addFriend(用户){
如果(friends==null)friends=newarraylist();
添加(用户);
}
}
但这并不是我想要的方式,因为我希望数据库中只有一行用于双向关系,在本例中,它在两个方向上都有两行

我怎样才能做到这一点呢?

这是一个选择

只需确保正确更新参与关联的两个用户。

需要一个选项

只需确保正确更新参与关联的两个用户