我在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 还是“”空串