Я использую Dropwizard. Я хочу десериализовать и проверить вложенный POJO вне уровня ресурса.
Если я сделаю это
@Path("/test")
@Produces(...)
@Consumes(...)
public Response get(@Valid ComplexNestedRequestBody complexNestedRequestBody){...}
Это будет проверять валидацию javax при десериализации и выдает ошибку валидации для всех нарушений в один раз для всего графа объектов.
Если я сделаю это
@Path("/test")
@Produces(...)
@Consumes(...)
public Response get( String complexNestedRequestBody){
ComplexNestedRequestBody pojo = objectMapper.readValue(complexNestedRequestBody,ComplexNestedRequestBody.class);
}
Проверка подлинности javax не будет применена при десериализации. Если я добавлю специальный модификатор десериализатора бина, который проверяет экземпляр после его десериализации, он десериализуется один за другим, начиная с самого внутреннего объекта. Таким образом, если что-то в самом внутреннем объекте завершится неудачно, например, @NotNull во время проверки, он выдаст ошибку вместо генерации суммарной ошибки после десериализации и проверки всего тела запроса. Я хочу кумулятивную ошибку.
Может кто-нибудь предложить способ сделать это?