我在Girl实体类里定义了@NotNull,但是最后显示在客户端不是我在message中填的而是一段错误代码
{ "code": 1, "msg": "Failed to convert property value of type 'java.lang.String' to required type 'double' for property 'money'; nested exception is java.lang.NumberFormatException: empty String", "data": null }
我的Girl对应出的代码如下:
@Id @GeneratedValue private Integer id; @NotBlank(message = "这个字段必须传") private String cupSize; @Min(value = 18, message = "未成年少女禁止入内") private Integer age; @NotNull(message = "金额必穿") private Double money;
Controller处对应代码:
@PostMapping("/girls") public Result<Girl> girlAdd(@Valid Girl girl, BindingResult bindingResult){ Result result = new Result(); if (bindingResult.hasErrors()){ result.setCode(1); result.setMsg(bindingResult.getFieldError().getDefaultMessage()); return result; } // girl.setCupSize(girl.getCupSize()); // girl.setAge(girl.getAge()); //上述两行实际上是不用加的 传值时就已经设值了,在Girl实体类里有Getter,Setter方法 result.setCode(0); result.setMsg("成功"); result.setData(girlRepository.save(girl)); return result; }
我试过,如果cupSize不填,他正常报错,但是金额不填就不是这么回事了。百思不得其解
在Controller打个断点看一下money是什么数据,还有就是NotBlank 与NotEmpty NotNull 进行区别 你先打个断点看一下money是null 还是“”空串