Piotr
Nowicki
JFB Systems,
właściciel
Temat: ManyTo0ne/OneToMany a utrwalanie obiektów
mam dwie encje w nich atrybuty:
@OneToMany(cascade=CascadeType.MERGE,mappedBy="zamowienie")
private List<PozycjaZamowienia> pozycja = new ArrayList<PozycjaZamowienia>();
oraz odwrotnie:
@ManyToOne(cascade=CascadeType.MERGE)
private Zamowienie zamowienie;
i fragment metody zapisującej zamówienie:
zamowienie.setPozycja(getKoszyk());
for (PozycjaZamowienia p : getKoszyk()){
p.setZamowienie(zamowienie);
}
zamowienieService.create(zamowienie);
for (PozycjaZamowienia p : getKoszyk()){
pozycjaZamowieniaService.create(p);
}
efekt działania następujący: pozycje zamówienia zapisują się poprawnie, natomiast w tabeli zamówienia tworzy się rekord + kolejna ilość rekordów identyczna z ilością pozycji zamówień.
Jak to poprawić, żeby w tabeli tworzyło się tylko jedno zamówienie?