📜  找不到约束“javax.validation.constraints.NotEmpty”验证类型“java.lang.Integer”的验证器.检查“product_quantity”的配置 (1)

📅  最后修改于: 2023-12-03 15:10:04.862000             🧑  作者: Mango

找不到约束“javax.validation.constraints.NotEmpty”验证类型“java.lang.Integer”的验证器

当我们在使用 Hibernate Validator 进行数据校验时,有时会遇到类似于上述报错信息。这个报错信息的含义是说在 product_quantity 字段上使用了 NotEmpty 约束,但是这个约束不支持 Integer 类型的数据验证。

最常见的情况就是我们在验证 Integer 或 Long 类型的数据时使用了 NotEmpty 约束。因为 NotEmpty 约束本身只支持 String 类型的数据验证,不能用于数字类型的数据。

那么如何解决这个问题呢?我们可以使用其他适合数字类型的数据验证约束,比如 @NotNull 或 @Min(1) 等。

示例代码:

public class Product {
    @NotNull(message = "商品数量不能为空")
    private Integer productQuantity;
}

public class ProductController {
    @PostMapping("/add")
    public void addProduct(@RequestBody @Validated Product product) {
        // 业务逻辑处理
    }
}

在上述示例代码中,我们使用了 @NotNull 约束来验证商品数量是否为空。同时,为了能够让 Hibernate Validator 对 Product 对象进行校验,我们也加上了 @Validated 注解。

总之,当我们在使用 Hibernate Validator 进行数据校验时,一定要选择适合当前情况的数据验证约束,避免出现类似于上述报错信息。