必填字段的Hibernate验证错误消息

时间:2018-07-23 16:34:00

标签: hibernate spring-mvc

@size(min=10, max=10)
private String mobileNumber;`enter code here`
private boolean isRequired;

IsRequired的值设置为yes时,我需要验证mobileNumber,否则不需要验证。

如何通过Hibernate验证来实现它。

1 个答案:

答案 0 :(得分:2)

您可以使用DefaultGroupSequenceProvider

添加您的条件,在您的情况下检查isRequired是否为真

public class BeanSequenceProvider implements DefaultGroupSequenceProvider<MyBean> {
    @Override
    public List<Class<?>> getValidationGroups(final MyBean object) {
        final List<Class<?>> classes = new ArrayList<>();
        classes.add(MyBean.class);
        if (object != null && object.getisRequired() == true) {
            classes.add(Special.class);
        }
        return classes;
    }

}

为以上使用的组定义接口

public interface Special {
}

使用上面创建的验证器

@GroupSequenceProvider(BeanSequenceProvider.class) // needed at class Level
public class MyBean {


    @NotEmpty(groups = Special.class) // Will check for condition defined in BeanSequenceProvider
    private String mobileNumber;

    private boolean isRequired;


    // Getters and setters        
}

注意:由于“问题”中未提及您的课程,因此我假设其为MyBean