我有自定义约束,具有以下逻辑:
@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
操作,我仍然需要一种方法来检查它是否为空(如果不是),如果它是一个有效的对象。
我是否可以在不使用两项检查创建其他约束的情况下执
谢谢你的答案。
答案 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;