簡體   English   中英

Java Bean驗證:在一個字段上將兩個約束與OR結合使用

[英]Java Bean validation: Combine two contstraints with OR on one field

我想針對兩個約束中的任何一個驗證字段'foo',即類似這樣的東西

@ConstraintA OR @ConstraintB
private String foo;

這可能嗎?

這可以通過Hibernate Validator實現,但只能使用Hibernate Validator特定的擴展。 使用它不符合Bean Validation的標准。

你將不得不使用這里描述的布爾組合約束 - http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-boolean-constraint-composition

您將需要一個“包裝器”約束。 像這樣的東西:

@ConstraintComposition(OR)
@PConstraintA
@ConstraintB
@ReportAsSingleViolation
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
@Constraint(validatedBy = { })
public @interface ConstraintAOrB {
    String message() default "{com.acme.ConstraintAOrB.message}";

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM