老实说,我对休眠和使用数据库进行编程还是很陌生...我试图将一些类似图形的结构保存到数据库中。
假设我有这样的 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 以这种方式表示图形是完全错误的方法?非常感谢任何帮助。