Walidacja dto, które jest w dto

Walidacja dto, które jest w dto
BE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
0

siema, moglby mi ktos podsunac rozwiazanie w jaki sposob moge zwalidowac dto, ktore jest w dto?
mniejwiecej wyglada to tak:

Kopiuj
public class OrderDto implements Serializable {

    @Null
    private Long id;
    @NotNull
    private CustomerDto customer;
    @NotNull
    private CartDto cart;
    private boolean isPaid;
    private boolean isDelivered;
    private String promotionCode;
}
Kopiuj
public class CustomerDto implements Serializable {

    @Null
    Long id;

    @Size(min = 2, max = 40)
    private String firstName;

    @Size(min = 2, max = 40)
    private String lastName;

    @Email
    @Size(min = 1, max = 40)
    private String email;

    @Size(min = 9, max = 9)
    private String phoneNumber;

    @Size(min = 1, max = 40)
    private String zipCode;

    @Size(min = 1, max = 40)
    private String town;

    @Size(min = 1, max = 40)
    private String province;

    @Size(min = 1, max = 10)
    private String streetNumber;
}

controller

Kopiuj
    @PostMapping("/process")
    public void prodcessOrder(@Validated @RequestBody OrderDto orderDto){
        orderFacade.processOrder(orderDto);
    }

generalnie problem w tym, że jak @Validated w kontrolerze waliduje @NotNull w OrderDto, ale @Size etc. w CustomerDto już nie.

AI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 375
0

Z tego co wiem to w dto nie powinno być logiki (w tym walidowania). Nie wiem, czy nie lepszym miejscem walidowania byłoby przed mapowaniem dto na docelowy obiekt. Dto powinno służyć tylko do przesyłania danych "na zewnątrz" lub odbierania "z zewnątrz".

BE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
0

w internetach nie znalazlem zadnego rozwiazania, wiec podejrzewam ze w tym przypadku powinienem po prostu zwalidowac pola w entity customer?

  • Rejestracja: dni
  • Ostatnio: dni
2

adnotacja @Valid

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.