如何在 javax 约束验证中进行 OR?

How to make OR in javax constraint validation?

我想找到一些在 javax 验证中制作 or 的解决方案。 类似于:

@Null
@Or
@MyCustomValidation
private MyObject myObject;

或者类似这样的东西。所以,基本上,我只想在字段不为空时调用 MyCustomValidation 。否则,它也应该有效。 如果 myObject 为 null,我当然可以在 MyCustomValidation 到 return true 中添加额外的逻辑,但是我应该在许多看起来不太好的验证器中添加这个逻辑。

让您的验证器为 null 值返回 true 确实是我们在开发自定义验证器时推荐的做法。

除了@NotEmpty有点特殊外,Hibernate Validator提供的所有验证器都遵循这个规则。

它允许您在需要非空值时使用 @NotNull 约束组合。

我不认为这个额外的逻辑会成为问题,它非常简单。如果是,您仍然可以有一个抽象父级 class.