Walidacja dto, które jest w dto

Odpowiedz Nowy wątek
2018-08-11 12:30
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.

edytowany 1x, ostatnio: bertie, 2018-08-11 12:39

Pozostało 580 znaków

2018-08-11 12:40
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".

w architekturze ktora stosuje, twoje rozwiazanie nie zawsze da sie zastosowac, wiec odpada - bertie 2018-08-11 12:44
@bertie w takim razie masz złą architekturę - IHaveHandedInMyResignation 2018-08-13 15:44

Pozostało 580 znaków

2018-08-11 12:51
0

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

edytowany 1x, ostatnio: bertie, 2018-08-11 12:51

Pozostało 580 znaków

2018-08-13 15:39
Chory Młot
2

adnotacja @Valid

dzięki. Musiało być coś takiego, co daje walidację na kompozycję. Inaczej by było nielogiczne. - AnyKtokolwiek 2018-08-13 21:22
dziekowac;) - bertie 2018-08-15 16:26

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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