繁体   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