Исключение валидатора Hibernate Spring Boot - PullRequest
0 голосов
/ 27 августа 2018

Я использую валидатор hibernate для проверки своей сущности перед сохранением

Set<ConstraintViolation<Selo>> error = validator.validate(seloNovo);

Итак. Можно выдать эту ошибку, как если бы я поместил @Valid в мой контроллер?

как то так:

{
    "timestamp": "2018-08-27T16:57:16.386+0000",
    "status": 400,
    "error": "Bad Request",
    "errors": [
        {
            "codes": [
                "NotEmpty.atoRtdpj.sgTabelaCustas",
                "NotEmpty.sgTabelaCustas",
                "NotEmpty.java.lang.String",
                "NotEmpty"
            ],
            "arguments": [
                {
                    "codes": [
                        "atoRtdpj.sgTabelaCustas",
                        "sgTabelaCustas"
                    ],
                    "arguments": null,
                    "defaultMessage": "sgTabelaCustas",
                    "code": "sgTabelaCustas"
                }
            ],
            "defaultMessage": "must not be empty",
            "objectName": "atoRtdpj",
            "field": "sgTabelaCustas",
            "rejectedValue": null,
            "bindingFailure": false,
            "code": "NotEmpty"
        }
    ],
    "message": "Validation failed for object='atoRtdpj'. Error count: 1",
    "path": "/selo/RTDPJ/" }

1 Ответ

0 голосов
/ 28 августа 2018

Объявите этот боб.

@Bean(name = "messageSource")
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasename("classpath:messages");
    messageSource.setDefaultEncoding("UTF-8");
    return messageSource;
}

@Bean(name = "validator")
public LocalValidatorFactoryBean validator() {
    LocalValidatorFactoryBean localValidatorFactoryBean = new LocalValidatorFactoryBean();
    localValidatorFactoryBean.setValidationMessageSource(messageSource());
    return localValidatorFactoryBean;
}

@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
    MethodValidationPostProcessor validationPostProcessor = new MethodValidationPostProcessor();
    validationPostProcessor.setValidator(validator());
    return validationPostProcessor;
}

Сохраните ваши сообщения в src / main / resources / messages и назовите их следующим образом: messages_en_US.properties. Конечно, у вас может быть несколько языков.

Моя версия с весенней загрузкой - 1.5.12. ВЫПУСК.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...