Java资深小白,不足之处,或者有任何错误欢迎指出。 --蓝紫
程序编译通过,执行报错:
No validator could be found for constraint ‘javax.validation.constraints.NotEmpty’ validating type ‘java.lang.Long’. Check configuration for ‘id’"。创建的类对象如下:
这里的id字段数据类型为Long,校验注解使用@NotEmpty报错了,是因为@NotEmpty一般作用在集合类或者数组类上,而针对数值类型校验一般使用@NotNull,更换为@NotNull判非空之后就不报错了。
非空校验注解 @NotNull、@NotEmpty、@NotBlank的区别和运用
- @NotNull 常用在数据类型为Long,Integer的基础数据类型上,可以配合@Size、@Max、@Min对数值进行大小的控制。
@ApiModelProperty(value = "编号")
@NotNull(message = "编号不能为空")
@JsonFormat(shape = Shape.STRING)
private Long id;
@ApiModelProperty(value = "价格")
@NotNull(message = "价格不能为空")
@Min(value = 100, message = "价格不能低于100")
@Max(value = 5000, message = "价格不能超过5000")
private Integer price;
@ApiModelProperty(value = "数量")
@NotNull(message = "数量不能为空")
@Size(min = 10, max = 50, message = "数量必须不低于10不超过50")
private Integer num;
- @NotEmpty 常用在集合类和数组类型上,也可以配合@Size进行大小的控制。
@ApiModelProperty(value = "材料保存列表", required = true)
@NotEmpty(message = "存货清单列表不能为空")
@Size(min = 1, message = "至少需要一条数据")
private List<MaterialAcceptanceItemsSaveVo> itemsSaveList;
- @NotBlank 只用于String数据类型上,可以和@Len配合使用限制字符长度。
@ApiModelProperty(value = "供应商", required = true)
@NotBlank(message = "供应商不能为空")
@Len(min = 1, max = 500)
private String provider;
@ApiModelProperty(value = "发票号", required = true)
@Len(min = 0, max = 250)
private String invoiceNo;
更多
- Long数据类型防止精度丢失,添加注解:@JsonFormat(shape = JsonFormat.Shape.STRING)
- BigDecimal数据类型的限制注解使用:@DecimalMin、@DecimalMax、@Digits
@ApiModelProperty(value = "报账总金额")
@DecimalMin(value = "0", inclusive = false, message = "报账总金额必须大于0")
@Digits(integer = 10, fraction = 2, message = "报账总金额 最大长度:10,允许精度:2")
private BigDecimal financeMoney;