Also habe ich zwei Entitäten:Aktualisieren einer Eins-zu-viele-Beziehung nach dem Kind gegeben
Person.java
@Entity
@Table(name = "persons")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToMany(mappedBy="person", cascade = CascadeType.REMOVE)
@JsonIgnoreProperties("person")
private Set<Address> addresses;
//getters and setters
}
Address.java
@Entity
@Table(name = "addresses")
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@NotNull
@ManyToOne
@JoinColumn(name = "person_id", nullable = false)
@JsonIgnoreProperties("addresses")
private Person person;
//getters and setters
}
Und später in meinem Code habe ich ein personDb Objekt (bereits in der Datenbank gespeichert) und dann füge ich Adresse hinzu:
Address address = new Address();
address.setPerson(personDb);
address = addressRepository.save(address);
und jetzt habe ich Adresse Objekt mit Person Objekt daran angeschlossen, aber meine PersonDb hat noch keine Adressen an sie angeschlossen. Auch wenn ich versuche, es wieder aus der Datenbank zu bekommen:
personRepository.findOne (personDb.getId());
Ich habe Null, wo Adressen gesetzt werden sollen. Ich habe auch versucht, meine Anmerkung in Person-Klasse zu so etwas wie dies zu ändern:
@OneToMany(mappedBy="person", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
oder Ändern CascadeType für alle, aber nichts hilft. Was kann ich tun, um Adressen in mein personDb-Objekt zu laden, nachdem sie zur Datenbank hinzugefügt wurden?