2017-06-05 43 views
0

我想建立一個NotNull檢查,只有在Create組的工作,這樣我就可以這樣我可以添加組驗證註釋嗎?

@Data 
public static class TestDto { 

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

寫我創建NotNullOnCreate這樣

@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(); 
    } 
} 

這是不行的,因爲組成約束條件註釋(見ConstraintDescriptorImpl#createComposingConstraintDescriptor)組將被設置爲主機註釋組(默認)。

我也試過這個Class<?>[] groups() default {Create.class};,但這是不允許的,默認組必須是空的。

我該如何做到這一點?我不想在任何地方寫這個小組。

編輯

回答

0

這是不可能的時刻。如果你喜歡,在Hibernate Validator issue tracker中打開一個問題,我們可以探索這個功能。

+0

謝謝,我創建了HV-1355 – wener

相關問題