3 Stimmen

Hibernate fügt keine Spalte in einer Eins-zu-Eins-Beziehung ein

Ich habe zwei Tabellen 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;
 }

Eine Person kann viele Pässe haben :)

Reisepass

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

}

in der Tabelle "Reisepass" wird alles außer person_id eingefügt

7voto

Prasanna Punkte 3573

Vor dem Speichern der Person:

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

repo.save(person);

Bi-direktionale Beziehungen in Hibernate müssen explizit eingerichtet werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X