Hibernate 不在一对多关系中插入列

标签 hibernate spring spring-mvc one-to-many

我有两张表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/

相关文章:

java - 在 Spring Data 中查找按字段排序的所有实体的正确方法是什么?

java - 将 sleuth 添加到项目会破坏 @ConfigurationProperties 类

Java Spring MVC + Hibernate 类组成

java - 使 UTF-8 可用于使用 Spring 将阿拉伯语数据放入 Mysql DB

java - 滚动时使用 Session.save() 时,可滚动 ResultSet.next() 逐渐减慢

java - Hibernate 5仍然忽略@Table注释来查找表

java - Hibernate prepareConnection/preparedStatement 问题

java - 如何在通过注解 Autowiring 的Spring bean中传递类构造函数参数

java - 如何在NamedQuery中使用正确的HQL

java - Spring bean 能否在 applicationContext.xml 中的声明中成为其自身的属性?