public class ScanRegisterBean implements Serializable{
@Min(value = 1)
@Max(value = Long.MAX_VALUE)
private long id;
@NotBlank(groups = {ScanRegister.class, Register.class})
@Length(min = 2, max = 20,groups = {ScanRegister.class, Register.class})
private String nick;
@NotBlank(groups = {ScanRegister.class, Register.class})
@Phone(mode = 0,groups = {ScanRegister.class, Register.class})
private String phone;
@NotBlank(groups = {ScanRegister.class, Register.class})
@Length(min = 6, max = 20,groups = {ScanRegister.class, Register.class})
private String pwd;
@NotBlank(groups = {Register.class})
private String deviceId;
public interface ScanRegister {}
public interface Register{}
}
hibernate-validator 配置的是 快速失败,配置如下
@Configuration
public class HibernateConfig {
// 配置 hibernate 快速失败
@Bean
public Validator validator() {
ValidatorFactory validatorFactory = Validation.byProvider(HibernateValidator.class)
.configure()
.addProperty("hibernate.validator.fail_fast", "true")
.buildValidatorFactory();
Validator validator = validatorFactory.getValidator();
return validator;
}
}
有个问题就是,在校验的时候不能先把一个字段校验完毕,在校验下一个字段。比如:前端提交的时候,nick, phone, pwd 都不填的时候, 会提示用户 nick 不能为空。然后再给nick赋值为 哈 的时候,再次提交,不会校验nick 的长度, 而是直接校验 phone,看phone是不是为空。怎么让hibernate 继续校验 nick 的长度,而不是直接校验Phone 是不是为空?
添加回答
举报
0/150
提交
取消
