eConstraintValidatorContext.class);
hibernateContext.addMessageParameter("zhGenderValue", genderValue == 0 ? "男" : "女"); // 友好展示
//hibernateContext.buildConstraintViolationWithTemplate("{zhGenderValue}").addConstraintViolation();
if (value == null) {
return false; // null is not valid
}
return value == genderValue;
}
}
运行单测:
@Getter
@Setter
@ToString
public class Person {
@Gender(gender = 0)
private Integer personGender;
}
public static void main(String[] args) {
Person person = new Person();
person.setPersonGender(1);
Validator validator = Validation.byProvider(Hibernateva lidator.class).configure().failFast(false)
.buildValidatorFactory().getValidator();
Set<ConstraintViolation<Person>> result = validator.validate(person);
// 输出错误消息
result.stream().map(v -> v.getPropertyPath() + " " + v.getMessage() + ": " + v.getInvalidValue())
.forEach(System.out::println);
}
打印如下:
personGender [自定义消息]此处只能允许性别为[男]的: 1
完美(效果达到)
总结
如果说前面文章是用机,那这篇可以称作是玩机了。Bean Validation
是java官方定义的bean验证标准,现在最新的版本为2.x,hibernate validator
作为其标准实现,对其进行了扩展,增加了多种约束,如果仍然不能满足业务需求,我们还可以自定义约束。
数据校验Bean Validation
这一大块的内容到此就告一段落了,希望讲解的所有内容能给你实际工作中带来帮助,祝好~
知识交流
若文章格式混乱,可点击
:原文链接-原文链接-原文链接-原文链接-原文链接
==The last:如果觉得本文对你有帮助,不妨点个赞呗。当然分享到你的朋友圈让更多小伙伴看到也是被作者本人许可的~
==
若对技术内容感兴趣可以加入wx群交流:Java高工、架构师3群
。
若群二维码失效,请加wx号:fsx641385712
(或者扫描下方wx二维码)。并且备注:"java入群"
字样,会手动邀请入群