Springboot CRUD

0 értékelés
164 megtekintés
wilderness (28 pont) kérdezte Feb 8.
Sziasztok!

Ismét elakadtam, és hiába pörgettem át a kódot már sokadik alkalommal, nem látom hol a hiba.
Ha a db egy rekordját akarom szerkeszteni, akkor szépen betölti az adatokat, viszont ha rá savelek, akkor az ID-t növeli, olyan mintha új rekordot rögzítene, nem  a régit frissítené és sajnos egyszerűen nem látom hol csúszhattam el:/.

https://drive.google.com/open?id=1UfPAA10GYjDHGXyRctcb6FP8_abGpHZa

Üdv, Zoli

1 Válasz

+1 értékelés
wia Haladó Felhasználó (245 pont) válaszolta meg Feb 12.
Krisz kiválasztva Feb 19.
 
Legjobb válasz
Szia,

Mivel a mentésnél új objektumokat hozol létre:

Books book = new Books();
Authors author = new Authors();
És ezeket kitöltöd a felületről beérkező adatokkal, így a rendszer úgy érzékeli, hogy ezek újak amiket külön le kell tárolnia.
Esetedben ezt a két sort erre kellene kicserélni ez betölti a DB ből a már létező objektumot:
Books book = bs.findById(id);
Authors author = book.getSzerzo();

Ha egy meglévőt szeretnél módosítani, akkor szerintem így kellene. A "new"  kulcsszót akkor kellene csak használni, ha valóban egy újat szeretnél létrehozatni.

Az Optinal<Books> isPresent() függvényét használhatnád arra, hogy kideritsd azt, hogy most az "új" vagy a "szerkeszt" eset áll fenn.
wilderness (28 pont) szólt hozzá Feb 21.
Szia!

Köszi a segítséget!

Üdv,
Zoli
...