自定义约束验证和Null

时间:2011-12-20 08:09:47

标签: java validation bean-validation

我有自定义约束,具有以下逻辑:

@Override
public boolean isValid(City city, ConstraintValidatorContext context) {
    boolean result = (city.getId() > 0 || (city.getName() != null && city.getName() != "")); 
    return result;
}

当我需要从创建操作中检查City实例时,这很有效(此字段是必需的,因此@NotNull可以保护它。)

但是当我需要更新包含City实例的对象时,此字段是可选的。因此,即使我将@NotNull约束分组到Create操作,我仍然需要一种方法来检查它是否为空(如果不是),如果它是一个有效的对象。

我是否可以在不使用两项检查创建其他约束的情况下执

谢谢你的答案。

1 个答案:

答案 0 :(得分:0)

好的,我用OR null检查编辑了我的第一个约束。

@Override
    public boolean isValid(Country country, ConstraintValidatorContext context) {
        boolean result = (country==null||
                             country.getId() > 0 || 
                             (country.getName() != null && country.getName() != ""));
        return result;
    }

在bean中

    @NotNull(groups = Create.class)
    @ValidCountry(groups = {Create.class, Update.class})
    private Country country;