@Valid在春季不适用于Bean类中的嵌套对象

时间:2018-10-19 09:24:17

标签: spring spring-boot spring-validator javax.validation

我有一个Bean类,其中有一个嵌套对象,如下所示。

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class UserRequestDTO {

        private String transactionId;

        private String email;

        @Valid @NotNull HistoryRequestDTO historyRequestDTO;
    }

这是嵌套的对象bean类。

import javax.validation.constraints.*;
    @Data
    public class HistoryRequestDTO {

        @NotNull(message = Constants.INVALID_FIELD_DATA_EN_US)
        @Range(min = 0, max = 100, message = Constants.INVALID_FIELD_DATA_EN_US)
        @NumberFormat(style = NumberFormat.Style.NUMBER)
        Integer pageNumber;

        @NotNull(message = Constants.INVALID_FIELD_DATA_EN_US)
        @Range(min = 50, max = 500, message = Constants.INVALID_FIELD_DATA_EN_US)
        @NumberFormat(style = NumberFormat.Style.NUMBER)
        Integer pageSize;
    }

我已经为HistoryRequestDTO实现了验证器,并且可以单独工作。但是当我使用UserRequestDTO时,HistoryRequestDTO验证器不起作用。

我尝试为UserRequestDTO实现单独的验证器,但仍然没有调用HistoryRequestDTO验证器。

1 个答案:

答案 0 :(得分:0)

  

尝试

     

@这里显示了bean类中嵌套对象的有效用法,只需检查   一次。

hibernate validator