Hibernate插入带连接和外键

时间:2017-03-01 08:36:07

标签: java hibernate

我在插入hibernate时遇到了一些问题。

假设我有2个实体

@Entity
public class User{
    @Id
    @GeneratedValue
    int user_id;

    String name;

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinColumn(name = "utente_id")
    list<City> cities;
}

@Entity
public class City{
    int user_id
    int city_id
}

如果我尝试创建类用户并添加城市列表但是当我尝试保存时,会收到此错误:

  

引起:java.sql.SQLException:发生外键约束违规

这是因为类user_id中的City必须在user_id User处相等,但hibernate首先插入然后更新。 我如何围绕这个?

1 个答案:

答案 0 :(得分:0)

首先尝试将User对象持久保存到DB。 只有在您持久化后才能获得生成的user_id值。

然后,您可以创建City对象,设置user_id字段并保留它。