Hibernate не вставляет столбец в однотомных отношениях - PullRequest
2 голосов
/ 07 марта 2011

У меня есть две таблицы Персона

@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;

}

в паспортной таблице все вставлено, кроме person_id

1 Ответ

5 голосов
/ 07 марта 2011

Перед сохранением Person:

for(Passport passport : person.getPassports())
{
    passport.setPerson(person);
}

repo.save(person);

Двунаправленные отношения в Hibernate должны быть настроены явно.

...