gpt4 book ai didi

java - 在 Hibernate 中映射一个实体中的多个集合

转载 作者:行者123 更新时间:2023-12-01 04:41:18 24 4
gpt4 key购买 nike

老实说,我对 hibernate 和数据库编程还很陌生......我尝试将一些类似图形的结构保存到数据库中。

假设我有这样的 Java 类:

public class User {
@OneToMany(cascade=CascadeType.ALL)
private Collection<User> followers = new ArrayList<>();
@OneToMany(cascade=CascadeType.ALL)
private Collection<User> friends = new ArrayList<>();
@Id
private String name;
.....
}

问题是我想使用 Hibernate 将其保存到 PostgeSQL 数据库。然而我发现这很不平凡。例如,一个问题是:假设我这样做:

User user1 = new User("user1");
User user2 = new User("user2");
user1.getFollowers().add(user2);
user1.getFriends().add(user2);

现在,如果我对 user1 对象进行合并,则会出现键唯一性约束问题。我想知道这是否是问题所在,因为我错误配置了 Hibernate 注释来保存我的结构,或者使用 Hibernate 以这种方式表示图形是完全错误的方法?非常感谢任何帮助。

最佳答案

就我个人而言,我会选择生成的 ID 列,并且不会使用用户名。而是对数据库中的名称列施加约束。

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column
private long id;

否则我看不出你的方法有什么问题。运行代码时是否遇到任何异常?

关于java - 在 Hibernate 中映射一个实体中的多个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16469655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com