如何在hibernate验证器中为我的所有属性设置默认约束

时间:2011-03-08 14:14:52

标签: java bean-validation hibernate-validator

我想自动将@Valid约束放在我的所有属性上。

示例:

public class Adult extends MyBeanValidationAbstractClass{
    @Min(18)
    public Integer age;
    @NotBlank
    public String name;
    public Dog dog;
    public Cat cat;
}

我希望Validator认为所有属性都有@Valid注释。

如何实现这一目标?

2 个答案:

答案 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