手动添加约束违规

Mar*_*ijk 7 java bean-validation

是否可以手动添加约束违规?

例如:

// validate customer (using validation annotations)
Set<ConstraintViolation<Customer>> violations = validator.validate(customer);

if (someSpecialCase) {
    violations.add(..) 
}
Run Code Online (Sandbox Code Playgroud)

问题是该add方法接受ConstraintViolation接口,但javax.validation包中不包含可以使用的实现器.

任何的想法?

Har*_*rdy 3

简短的回答是:“不,没有办法手动添加约束违规”。

详细一点。正如你所说,所有涉及的类都是接口。如果您确实想这样做,您可以实现自定义ConstraintViolationImpl。但是,我想知道您的实际用例是什么?为什么要在没有验证的情况下添加约束违规?正如答案/sf/answers/1660901861/所建议的那样,您始终可以通过类级别自定义约束。作为自定义ConstraintValidator实现中isValid的一部分,您将获得一个ConstraintValidatorContext,它将允许您添加其他约束违规。