JSR303:如何验证收集的附加说明的对象?
-
29-09-2019 - |
题
是否可以验证一个集中的对象JSR303-灵真的太好了Bean验证那里收集本身不具有任何注解,但是要素包含在做什么?
例如,是否有可能为此结果约束冲突,由于空的名字在第二人:
List<Person> people = new ArrayList<Person>();
people.add(new Person("dave"));
people.add(new Person(null));
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<List<Person>>> validation = validator.validate(people);
其他提示
你,也可以添加 @NotEmpty
到收藏。
public class Car {
@NotEmpty(message="At least one passenger is required")
@Valid
private List<Person> passengers = new ArrayList<Person>();
}
这将确保至少有一名乘客,并且 @Valid
注释确保每个 Person
对象已验证
当然,你也可以只是迭代表和呼叫验证程序。验证上的每一个元素。或者把这列入一些包装豆和注释它与@有效的。延伸。验证似乎是错误的给我。你有一个特定使用的情况下,要解决这个?如果是这样也许你可以解释这一点。来回答你最初的问题:
是否有可能验证 集合的目的在JSR303- 灵真的太好了Bean验证那里的 收集本身不具有任何 注释,但包含的元素 在做什么?
没有
我写了这个通用类:
public class ValidListWrapper<T> {
@Valid
private List<T> list;
public ValidListWrapper(List<T> list) {
this.list = list;
}
public List<T> getList() {
return list;
}
}
如果您使用Jackson Library进行审判JSON,则可以添加 @JsonCreator
构造函数上的注释和杰克逊将自动对JSON数组进行启用到包装对象。
不隶属于 StackOverflow