проверка пользовательских ограничений и Null - PullRequest
1 голос
/ 20 декабря 2011

У меня есть пользовательское ограничение со следующей логикой:

@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 голосов
/ 21 декабря 2011

Хорошо, я закончил редактирование моего первого ограничения с проверкой OR null.

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

А в бобах

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