我有两张表Person
@Id
@Column(name = "PERSON_ID")
@GeneratedValue
public Integer getId() {
return id;
}
@Column(name = "FIRST_NAME")
public String getFirstName() {
return firstName;
}
@Column(name = "LAST_NAME")
public String getLastName() {
return lastName;
}
@Column(name = "MONEY")
public Double getMoney() {
return money;
}
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="person")
@JoinColumn(name="person_id")
public List<Passport> getPassports(){
return this.passports;
}
一个人可以拥有多本护照:)
护照
@Id
@Column(name = "passport_id")
@GeneratedValue
public Integer getPassport_id() {
return passport_id;
}
@Column(name = "country_issue")
public String getCountry_issue() {
return country_issue;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="person_id")
public Person getPerson(){
return person;
}
在 passport 表中除了 person_id 之外的所有内容都被插入
最佳答案
保存人之前:
for(Passport passport : person.getPassports())
{
passport.setPerson(person);
}
repo.save(person);
必须明确设置 Hibernate 中的双向关系。
关于Hibernate 不在一对多关系中插入列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5216432/