Folgender Code:
Code:
@Entity
public class Customer extends Person {
@Id
@GeneratedValue
protected Long id;
...
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(
name = "customer_addressList",
joinColumns = @JoinColumn(name = "customer_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "address_id", referencedColumnName = "id")
)
protected List<Address> addressList;
}
@Entity
public class Address extends BaseEntity {
@Id
@GeneratedValue
protected Long id;
...
}
Soll heissen Kunde hat mehrere Adressen – ein Objekt Kunde kennt seine Adressen-Objekte, Objekt Adresse aber seine Objekt Kunde nicht (unidirektionale OneToMany).
Wenn ich nun einen neuen Kunden und gleichzeitig eine neue Adresse anlege, diese beim Kunden in die Liste einhänge und dann den Kunden speichere, wird zwar der Kunde und die Adresse angelegt, aber die Tabelle customer_addressList bleibt leer und somit ist keine Verknüpfung da.
Speicher ich erst einzeln den Kunden, hänge dann die noch nicht persitente Adresse in den Kunden rein und mach dann ein Update auf den Kunden, wird die Adresse gespeichert und die Verknüpfung in customer_addressList angelegt.
Hast jemand eine Idee warum das nicht gleich beim Speichern des Kunden funktioniert?
Danke für eure Hilfe!
Gruß
Ralf