Walidacja dto, które jest w dto

0

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

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;
}
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

    @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.

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".

0

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

2

adnotacja @Valid

1 użytkowników online, w tym zalogowanych: 0, gości: 1