java bean验证_java-Bean验证是否验证一种验证有效?

我不确定我要问的是什么,但是如果您打算仅在@ Contraint1没有失败时执行@ Contraint2验证,则可以使用JSR-303 groups进行如下操作:

@GroupSequence(value={Car.class, Contraint1Group.class,Contraint2Group.class})

public class Car {

@ContraintA(groups=Contraint1Group.class)

@ContraintB(groups=Contraint2Group.class)

private String type;

}

您还需要声明标记接口以指定组:

public interface Contraint1Group extends Default { }

public interface Constraint2Group {}

当没有使用约束注释指定任何组时,第一个扩展javax.validation.groups.Default是默认的扩展名.

问题更新后进行编辑:您可以,但仅当使用休眠验证器时(它是JSR-303的参考实现),同时提供@ConstraintComposition(OR) extension,同时创建新的自定义组成的验证规则:

@ConstraintComposition(OR)

@Constraint1

@Constraint2

@ReportAsSingleViolation

@Target({ METHOD, FIELD })

@Retention(RUNTIME)

@Constraint(validatedBy = { })

public @interface Constraint1ORConstraint2 {

String message() default "{Constraint1ORConstraint2.message}";

Class>[] groups() default { };

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

}

其中@ReportAsSingleViolation意味着每次执行仅报告一次违规(您可以全部删除此注释).由于@ Constraint1ORConstraint2注释本身不需要其他验证,因此请勿在@Constraint元注释内声明验证器.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值