Wpis z mikrobloga

Hej Mireczki
Pytanie: jak poprawnie zaimplementować metodę aktualizującą encję?
Najprostszy sposób:
Sprawdzić czy w userDto dane pole nie jest nullem (i generalnie czy się poprawnie waliduje) i jeśli tak to na obiekcie user ustawić tę wartość na polu a finalnie wywołać update na repozytorium (w kontrolerze naturalnie http method patch).

Tyle, że ifowanie każdego pola z dto czy jest ok itp wydaje mi się słabe i się nie skaluje.
I zapewne istnieje do tego jakiś mechanizm, tylko jaki?? ( ͡° ͜ʖ ͡°)

#naukaprogramowania #programowanie #spring #restapi #java
  • 7
  • Odpowiedz
Nie w hibernate tylko zwyczajnie na encji (hibernate nie ma tu nic do rzeczy).
Tylko najpierw muszę sprawdzić co w dto przyszło (i czy poprawnie) więc teoretycznie ręcznie oifować każde pole z dto które się mapuje na encję i w razie jeśli w ogóle jest i poprawnie się waliduje to dopiero setterem ustawić.
Dla encji która będzie miała bardzo dużo pól będzie to bardzo dużo ifów.

Dlatego zapewne jest już mechanizm który
  • Odpowiedz
@Generyczny_nick: a dodatkowo w bazie ponakladaj constrainty odpowiednie na encje. Gdzie not null, co ma byc unikalne itd. Wtedy do aplikacji wejda tylko juz zwalidowane dane dzieki walidacji dto, a jak sie gdzies wkradnie blad kodu, to constraint nie pozwoli tego zapisac w bazie
  • Odpowiedz
@Generyczny_nick: No i przede wszystkim jakie rzeczy byś chciał walidować, napisałeś że nie dałbyś adnotacji (notnull) więc dopuszczasz możliwość że po prostu tego pola nie będzie. Więc po co np. to pole chciałbyś walidować?
  • Odpowiedz