我想自动将@Valid
约束放在我的所有属性上。
示例:
public class Adult extends MyBeanValidationAbstractClass{
@Min(18)
public Integer age;
@NotBlank
public String name;
public Dog dog;
public Cat cat;
}
我希望Validator认为所有属性都有@Valid
注释。
如何实现这一目标?
答案 0 :(得分:0)
因此,在您的示例中,您希望使用@Valid对Dog和cat进行注释。我猜Integer和String不应该受到影响? 我不认为你可以自动化这个,除了你应该知道,你的属性有哪些要求?
---编辑:重新阅读...你不要写注释,你想控制验证器。
您可以为您的类型编写自定义Constraint-Annoation
@ValidAttributes
public class MyClass {
...
}
然后使用客户验证器进行该注释。然后,您可以使用反射来迭代所有属性并验证它们。
答案 1 :(得分:0)
诚实的答案是:bean验证不遵循约定优于配置 - 你必须将@Valid放在所有地方。恕我直言的bean验证有一个基本的设计缺陷。
顺便说一句:对于那些不喜欢样板代码并希望采用非官方方式的人来看看: https://m-m-m.github.io/maven/apidocs/net/sf/mmm/util/bean/api/Bean.html