@Valid w adnotacjach - korzystanie z wrappera DTO

@Valid w adnotacjach - korzystanie z wrappera DTO
EF
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 7 lat
  • Postów:53
0

Cześć,
Potrzebuję zwalidować UserDto - chciałbym załatwić to wcześniej niż przed ładowaniem danych do bazy. Powedzmy mam tak:

Kopiuj
public class UserDto {
@Size(min=3)
String firstName;
//...

W kontrolerze daję:

Kopiuj
public String saveUser(@Valid @ModelAttribute("wrap") WrapperUser wrapperUser, BindingResult result){
//...

Klasa wrapper:

Kopiuj
public class WrapperUser {
private UserDto userDto;
//...inne pola...

I problem jest to, że nie nie chce mi walidować userDto a muszę mieć zastosowanego wrappera bo na nim ustawiane są inne pola. Ktoś wie jak to obejść? Jak zarzucę walidację na encje to działa, pomimo takiego odpalenia metody kontrolera, który przecież do encji odwołuje się na samym końcu wywołania, więc dlaczego nie chce dla obiektu DTO?
Po sprawdzeniu if (result.hasErrors()) nigdy nie ma true i warunek nigdy nie jest spełniony, pomimo, że podaję imię o długości 1 znaku.

Edit:
Ok, rozwiązanie trywialne pomimo, że zjadło mi kilka godzin - dodanie @Valid w definicji obiektu User we wrapperze:

Kopiuj
@Valid
private UserDto userDto;

Może komuś się przyda, więc nie usuwam.

edytowany 4x, ostatnio: efem
krzysiek050
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:1272
2
Kopiuj
public class WrapperUser {
@Valid
private UserDto userDto;
EF
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 7 lat
  • Postów:53
0

Dzięki, w tej samej chwili edytowałem wpis ;)

edytowany 1x, ostatnio: efem
KA
tak tak akurat

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.