当前位置: 首页 > 工具软件 > Validater > 使用案例 >

Hibernate-Validater自定义组序列分组校验

孔礼骞
2023-12-01

1. Hibernate Validator 中文文档:

Hibernate官方文档-https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/

2. 自定义组序列分组校验

根据对象状态来重定义默认组序列,我在工作中遇到一个参数校验问题,比如需要根据一个参数值X来校验其他参数是否符合要求,要满足X的不同值都能达到校验效果,我实现了DefaultGroupSequenceProvider接口重定义了校验组序列

2.1 实现DefaultGroupSequenceProvider

public class DiyGroupSequencyProvider implements DefaultGroupSequenceProvider<ConfigParam> {
    @Override
    public List<Class<?>> getValidationGroups(ConfigParam param) {

        List<Class<?>> defaultGroupSequency = new ArrayList<>();
        //这一步不能省略,否则会抛错
        defaultGroupSequency.add(ConfigParam.class);
        if (param!=null){
            if ("xxx".equals(param.getMedium())){
                defaultGroupSequency.add(ConfigParam.xxxGroup.class);
            }else{
              defaultGroupSequency.add(ConfigParam.ErrorGroup.class);
            }
        }
        return defaultGroupSequency;
    }
}

2.2 在参数类上添加注解@GroupSequenceProvider

@Data
@AllArgsConstructor
@NoArgsConstructor
@GroupSequenceProvider(value = DiyGroupSequencyProvider.class)
public class ConfigParam {
    private String medium;
    @NotBlank(message = "栏目/频道名称不可为空", groups = {xxxGroup.class})
    private String name;
    }
 类似资料: