相关疑难解决方法(0)

使用Hibernate Validator进行交叉字段验证(JSR 303)

在Hibernate Validator 4.x中是否有(或第三方实现)交叉字段验证的实现?如果不是,那么实现交叉字段验证器的最简洁方法是什么?

例如,如何使用API​​来验证两个bean属性是否相等(例如验证密码字段是否与密码验证字段匹配).

在注释中,我希望有类似的东西:

public class MyBean {
  @Size(min=6, max=50)
  private String pass;

  @Equals(property="pass")
  private String passVerify;
}
Run Code Online (Sandbox Code Playgroud)

validation hibernate-validator bean-validation

228
推荐指数
8
解决办法
15万
查看次数

Hibernate -validator 组序列提供程序 getDefaultSequenceProvider 获取 null 作为输入

我正在使用休眠验证器组序列,并希望根据业务规则按顺序执行组。但 groupSequenceProvider 的 getValidationGroups 输入始终为 null,因此永远不会添加自定义序列。

我的请求对象:

@GroupSequenceProvider(BeanSequenceProvider.class)
public class MyBean {

    @NotEmpty
    private String name;

    @NotNull
    private MyType type;

    @NotEmpty(groups = Special.class)
    private String lastName;

    // Getters and setters        
}
Run Code Online (Sandbox Code Playgroud)

枚举类型:

public enum MyType {
    FIRST, SECOND
}
Run Code Online (Sandbox Code Playgroud)

我的自定义序列提供者:

public class BeanSequenceProvider implements DefaultGroupSequenceProvider<MyBean> {

    @Override
    public List<Class<?>> getValidationGroups(MyBean object) {

        final List<Class<?>> classes = new ArrayList<>();
        classes.add(MyBean.class);
        if (object != null && object.getType() == MyType.SECOND) {
            classes.add(Special.class);
        }
        return classes;
    }
}
Run Code Online (Sandbox Code Playgroud)

组注释:

public interface Special {
} …
Run Code Online (Sandbox Code Playgroud)

spring hibernate-validator spring-boot

5
推荐指数
1
解决办法
1414
查看次数