我试图将啤酒厂对象添加到数据库,并且在执行任务之前检查错误。当我通过调试器时,它说它具有今天的日期变量,当它说有错误时,我先设置了它以检查错误,然后打印出result.hasErrors,并说该属性为null。

通过调试器时
java - 当将对象传递给数据库时,调试器说属性具有变量,但是当result.hasErrors打印时,它为null-LMLPHP

当代码用于检查错误并打印出错误时

@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");
    }


打印出来的错误


字段“ lastMod”上的对象“酿酒厂”中的字段错误:拒绝的值[null];代码[NotNull.brewerie.lastMod,NotNull.lastMod,NotNull.java.util.Date,NotNull];参数[org.springframework.context.support.DefaultMessageSourceResolvable:代码[brewerie.lastMod,lastMod];参数[];默认消息[lastMod]];默认消息[不能为空]

最佳答案

我先检查错误


不,你不会。由于@Valid批注,错误检查是在方法调用之前完成的。调用result.hasErrors()不会执行验证,它只会返回lastModnull时分配的结果。

07-28 13:01