java - 如何在 javax 约束验证中进行 OR?
问题描述
我想找到一些用于进行or
javax 验证的解决方案。就像是:
@Null
@Or
@MyCustomValidation
private MyObject myObject;
或者类似的东西。所以,基本上,我MyCustomValidation
只想在字段不为空时调用。否则,它也应该是有效的。如果 myObject 为空,我当然可以添加额外的逻辑MyCustomValidation
来返回 true,但是我应该在许多看起来不太好的验证器中添加这个逻辑。
解决方案
在开发自定义验证器时,我们确实建议让验证器为空值返回 true。
除此之外@NotEmpty
,Hibernate Validator 提供的所有验证器都遵循这个规则。
@NotNull
当您想要一个非空值时,它允许您使用约束来组合。
我不认为这个额外的逻辑会成为问题,它非常简单。如果是,您仍然可以拥有一个抽象父类。