2012-07-23 133 views
0

我想在一个属性上多次使用一个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; 

,但它似乎并没有工作。

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

回答

2

您应该使用Hibernate Validator开箱即用的@Length.List。所有内置约束(都由BV规范定义,由Hibernate Validator定义的附加自定义约束)定义了这样一个@List注释。

+0

听起来不错!我会明天尝试,并告诉你是否有帮助。 – MrKiller21 2012-07-23 21:05:42

+0

Thx,问题解决了。 – MrKiller21 2012-07-24 07:39:51