Не работает 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