при передаче объекта в базу данных, отладчик говорит, что атрибут имеет переменную, но при выводе result.hasErrors он становится пустым - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь добавить объект brewer ie в базу данных и проверяю ошибки, прежде чем он выполнит задачу. Когда я go через отладчик, он говорит, что у него есть переменная сегодняшней даты, я устанавливаю его, прежде чем он проверяет ошибки, когда он говорит, что есть ошибки, я распечатываю result.hasErrors, и он говорит, что атрибут равен нулю.

при прохождении через отладчик enter image description here

когда код используется для проверки на наличие ошибки и распечатывает ошибку

@PostMapping("/addBrewery")
public ModelAndView addAnBrewery(ModelMap model, @Valid @ModelAttribute("brewerie") Breweries brewerie, BindingResult result) {
       Date date = new Date();
    brewerie.setLastMod(date);
    brewerie.setId(1);
     if (result.hasErrors()) {
         System.out.println(result);
        return new ModelAndView("/addBrewery");
    }

ошибка распечатки

Ошибка поля в объекте 'brewer ie' в поле 'lastMod': отклоненное значение [null]; коды [NotNull.brewer ie .lastMod, NotNull.lastMod, NotNull. java .util.Date, NotNull]; аргументы [org.springframework.context.support.DefaultMessageSourceResolvable: codes [brewer ie .lastMod, lastMod]; аргументы []; сообщение по умолчанию [lastMod]]; сообщение по умолчанию [не может быть нулевым]

1 Ответ

0 голосов
/ 07 марта 2020

Я установил его, прежде чем он проверяет на ошибки

Нет, вы не делаете. Проверка ошибок выполняется перед вызовом метода из-за аннотации @Valid. Вызов result.hasErrors() не выполняет проверку, он просто возвращает результат, который был назначен, когда lastMod было null.

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