重复注释 - 休眠验证器

时间:2012-07-23 15:29:13

标签: java hibernate validation annotations hibernate-validator

我想在一个属性上多次使用一个hiberante验证器注释。

e.g:

@Length(min = 10, max = 10, groups = {Lenght10Group.class})
@Length(min = 5, max = 5, groups = {Lenght5Group.class})
private String productCode;

我找到了以下帖子Multiple annotations of the same type on one element?,并尝试将其应用到我的应用程序中。

我创建了Lengths.java文件:

public @interface Lenghts {
   Lenght[] value();
}

并按以下方式应用:

@Lenghts( {@Length(min = 10, max = 10, groups = {Lenght10Group.class}), 
           @Length(min = 5, max = 5, groups = {Lenght5Group.class}) })
private String productCode;

但它似乎不起作用。

我错过了什么?是否需要自定义验证器,自定义处理程序?任何人都可以帮我这个吗?我会很感激。

1 个答案:

答案 0 :(得分:2)

您应该使用Hibernate Validator提供的@Length.List开箱即用。所有内置约束(由BV规范定义和Hibernate Validator的其他自定义约束)都定义了这样的@List注释。