java - 使用整数字段进行 Hibernate 验证

标签 java hibernate spring-mvc

我正在研究hibernate-validator和validation-api库,我想验证类型为Integer的字段名称,当用户输入String类型时,我的问题出现了。它适用于 null 和empty。如果您曾经遇到过这个问题,您能告诉我解决方法吗?

@Entity
@Table(name = "shops")
public class Shop {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;

    @Column(name = "employees_number")
    private Integer emplNumber;

    // getter and setter

}

@Component
public class ShopValidator implements Validator {

    @Override
    public boolean supports(Class<?> clazz) {
        return Shop.class.isAssignableFrom(clazz);
    }

    @Override
    public void validate(Object target, Errors errors) {
        Shop shop = (Shop) target;
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "shop.name.empty");
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "emplNumber", "shop.emplNumber.empty");
        if (!NumberUtils.isNumeric(shop.getEmplNumber().toString())) {
            errors.rejectValue("emplNumber", "shop.emplNumber.invalid");
        }
    }

}

public class NumberUtils {

    public static boolean isNumeric(String isNum) {
        try {
            return isNum.matches("[1-9]+");
        } catch (NullPointerException e) {
            return false;
        }
    }
}

Here is picture I need to validate

最佳答案

尝试 @Digits@NotBlank 注释

@Entity
@Table(name = "shops")
public class Shop {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;

    @Column(name = "employees_number")
    @NotBlank(message = "{shop.name.empty}")
    @Digits(integer=10, fraction=0, message = "{shop.emplNumber.invalid}")
    private String emplNumber;

    // getter and setter
}

http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-defineconstraints-spec

关于java - 使用整数字段进行 Hibernate 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38640273/

相关文章:

java - 在 2 个表之间拆分 Hibernate 实体

java - NonUniqueObjectException session 不包含对象本身?

java - Spring MVC - HTTP 状态 405 - 不支持请求方法 'POST'

java - 高效 Eclipse 的最佳设置

java - 运行 IBM 代码示例时出现 ClassNotFoundException

java - 如何生成带有时间戳的单独测试输出文件夹?

java - 将 List<String> 直接转换为 List<Integer>

hibernate - 用于检查 hasMany 关联是否包含某些实体的 Grails/Hibernate 标准

java - Spring MVC 拦截器只拦截特定的映射吗?

spring - 错误 : getWriter() has already been called for this response in springmvc