2017-06-05 1 views
0

Ich möchte ein NotNull Scheck bauen, die nur auf Create Gruppe arbeiten, ich kann wie dieser Das funktioniert nicht, weil Komponieren erstellenKann ich eine Bean-Validierungsannotation mit einer Gruppe hinzufügen?

@Data 
public static class TestDto { 

    @NotNullOnCreate 
    // @NotNull(groups = Create.class) // instead of this 
    private String id; 
} 

ich die NotNullOnCreate wie diese

@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER}) 
@Retention(RUNTIME) 
@Documented 
@Repeatable(NotNullOnCreate.List.class) 
@ReportAsSingleViolation 
@Constraint(validatedBy = {}) 
@NotNull(groups = Create.class) 
@interface NotNullOnCreate { 

    String message() default "{javax.validation.constraints.NotNull.message}"; 

    Class<?>[] groups() default {}; 

    Class<? extends Payload>[] payload() default {}; 

    @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER}) 
    @Retention(RUNTIME) 
    @Documented 
    @interface List { 

     NotNullOnCreate[] value(); 
    } 
} 

so schreiben Constraint Annotations (siehe ConstraintDescriptorImpl#createComposingConstraintDescriptor) Gruppe wird auf die Gruppe der Host Annotation gesetzt ('Default').

Ich habe auch versucht, diese Class<?>[] groups() default {Create.class};, aber dies nicht erlaubt ist, muss die Standardgruppe leer.

Wie kann ich das erreichen? Ich möchte die Gruppe nicht überall schreiben.

EDIT

Antwort

0

Dies ist im Moment nicht möglich ist. Wenn Sie möchten, öffnen Sie ein Problem im Hibernate Validator issue tracker und wir können diese Funktion erkunden.

+0

Danke, ich habe HV-1355 erstellt – wener

Verwandte Themen