• 框架——校验框架——HibernateValidator——杂项


    快速失败模式:调用failFast方法,传入参数true,默认值为false。

    编码方式定义校验规则:创建ConstraintMapping对象,指定哪个对象,哪个属性,哪个校验规则注解。等同于在Car的manufacturer属性上添加@NotNull规则。

    constraintMapping
        .type( Car.class )
            .field( "manufacturer" )
                .constraint( new NotNullDef() )
    

      复合注解:@SupportedValidationTarget指定被校验主体的类型,@ConstraintComposition指定复合内部注解之间的关系。

    @SupportedValidationTarget(ValidationTarget.ANNOTATED_ELEMENT) 
    @ConstraintComposition(OR)
    

      Path可以查询校验对象的信息。

    // 获取Path对象
    Path path = constraintViolations.iterator().next().getPropertyPath();
    // 迭代,node中包含相关信息
    Path.Node node = nodeIterator.next();
    

      DynamicPayLoad获取动态的上下文,参考官网

      国际化:调用defaultLocale方法,传入参数。

    Validation.byProvider( HibernateValidator.class )
            .configure()
            .defaultLocale( Locale.CHINA )
            .buildValidatorFactory();
    

      添加消息变量:

    hibernateContext
    		.addExpressionVariable( "now", now )
    		.buildConstraintViolationWithTemplate( "Must be after ${now}" )
    		.addConstraintViolation();
    

      添加表达式参数:例如注解的属性值,

    hibernateContext
    		.addMessageParameter( "now", now )
    		.buildConstraintViolationWithTemplate( "Must be after {now}" )
    		.addConstraintViolation();
    

      添加除注解之外的校验规则:with参数可以是任何的布尔表达式,或者是返回布尔类型的方法。

    constraintMapping
            .constraintDefinition( ValidPassengerCount.class )
                .validateType( Bus.class )
               .with();
    

      修改属性名称:默认情况下ConstraintValidation中包含的属性名称与校验对象中的属性名称相同,可以自定义PropertyNodeNameProvider实现类提供自定义实现。参考官网

  • 相关阅读:
    reids 入门
    关于字典的那些事儿.
    更新阿里源repo出的问题
    关于-编码进阶
    *** 数据类型之间的转化
    关于列表那些事:12.24
    while else 结构体(自测)
    关于切片的步长为正负值 的问题(自测)
    if 嵌套if 的先后顺序的区别 (自测)
    二: python基础数据类型(int,
  • 原文地址:https://www.cnblogs.com/rain144576/p/16640560.html
Copyright © 2020-2023  润新知