我在插入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首先插入然后更新。
我如何围绕这个?
答案 0 :(得分:0)
首先尝试将User对象持久保存到DB。 只有在您持久化后才能获得生成的user_id值。
然后,您可以创建City对象,设置user_id字段并保留它。