Springboot CRUD

0 értékelés
45 megtekintés
wilderness (10 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

0 értékelés
wia Haladó Felhasználó (180 pont) válaszolta meg 4 napja
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.
...