Не работает javax.validation.constraints.NotNull при валидации внутренних объектов в json

Контроллер принимает сущность json такого вида

{
    "id": "",
    "date": "2020-05-28",
    "count": "",
    "amount": "",
    "payments": [
        {
            "account": "",
            "type": "",
            "time": "2020-05-28T12:34:56",
            "amount": "",
            "id": ""
        },
        {
            "account": "",
            "type": "",
            "time": "",
            "amount": "",
            "id": ""
        }
    ]
}

сущности представленны так

@Data
@Builder
@AllArgsConstructor
public class RegistryRequest implements Serializable { 
    @JsonProperty("id")
    @NotNull
    private String id; 
    @JsonProperty("date")
    @NotNull
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    @JsonDeserialize(using = DateHandler.class)
    private LocalDate date;
    @JsonProperty("count")
    @NotNull
    private String count; 
    @JsonProperty("amount")
    @NotNull
    private String amount; 
    @JsonProperty("payments")
    @NotNull
    private PaymentModel[] payments; 

    public RegistryRequest() {
    }
}

и

@Data
@Builder
@AllArgsConstructor
@JsonRootName("payments")
@Validated
public class PaymentModel implements Serializable { 
    @JsonProperty("account")
    @NotNull 
    private String account; 
    @JsonProperty("type")
    @NotNull 
    private String type; 
    @JsonProperty("time")
    @NotNull
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
    @JsonDeserialize(using = CustomDeserializer.class)
    private OffsetDateTime time;
    @JsonProperty("amount")
    @NotNull
    private String amount; 
    @JsonProperty("id")
    @NotNull
    private String id; 

    public PaymentModel() {
    }
}

проблема в том, что когда отправляю json без какие то полей верхней сущностей - падает BAD Reques, но если отправлю без полей внутри сущности то валидация не работает.

например такой запрос проходит а не должен

{
        "id": "",
        "date": "2020-05-28",
        "count": "",
        "amount": "",
        "payments": [
            {
                "account": "",
                "type": "",
                "time": "2020-05-28T12:34:56",
                "amount": "",
                "id": ""
            },
            {
                "account": "",
            }
        ]
    }

создается сущность с null полями в PaymentModel


Ответы (1 шт):

Автор решения: Padawan

@JsonProperty(required = true) вот эта запись помогла

→ Ссылка