gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:14:41 24 4
gpt4 key购买 nike

我正在研究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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com