2011-07-31 12 views
3

同じ注釈を持つフィールドに対して、自分の注釈を書く方法を知りたいと思います。JPA:同じ値を持つフィールドの注釈をバンドルする注釈を指定する

例えば:

古いクラス:

public class XXXEntity { 

@NotNull 
@SomeAnnotation_0 
@SomeAnnotation_1 
@Size(max = 100) 
private String email_0; 

@NotNull 
@SomeAnnotation_0 
@SomeAnnotation_1 
@Size(max = 100) 
private String email_1; 

... 
} 

希望クラス:

public class XXXEntity { 

@MyOwnAnnotation 
private String email_0; 

@MyOwnAnnotation 
private String email_1; 

... 
} 

任意のヒント?

おかげ
ジョニー

+0

これはJPAとの関連性がありません。以前のJPAアノテーションアノテーションやBean検証アノテーションはありますか?新しいアノテーションはどのように古いアノテーションに関連していますか?注 - '@ Size'と' @ NOtNull'はビーン検証アノテーションであり、エンティティを検証するために使用できますが、他の場所でも使用できます。 –

答えて

4

javax.validationconstraint compositionを持っています。すべての検証注釈を1つのカスタム注釈にバンドルすることができます。この例を文書からコピーするには:

@NotNull 
@Size(min = 2, max = 14) 
@CheckCase(CaseMode.UPPER) 
@Target({ METHOD, FIELD, ANNOTATION_TYPE }) 
@Retention(RUNTIME) 
@Constraint(validatedBy = {}) 
@Documented 
public @interface ValidLicensePlate { .. } 

しかし、妥当性チェック以外のアノテーションでは、この操作を行うことはできません。

関連する問題