anhngoquoc
anhngoquoc

Reputation: 19

Hibernate validation with Integer field

I'm working on hibernate-validator and validation-api library, I want to validate a field name with type is Integer, my issue cause when user input with String type. It work with null and empty. If you used to has this problem, could you show me the way to resolve it?

@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

Upvotes: 2

Views: 9090

Answers (1)

Planck Constant
Planck Constant

Reputation: 1524

Try @Digits and @NotBlank annotations

@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

Upvotes: 2

Related Questions