this是我的示例应用程序test。我已将repository的一些约束定义为@NotEmpty
。当我想调用此存储库时,我遇到了以下问题
javax.validation.ConstraintDeclarationException: HV000141: The constraint org.hibernate.validator.constraints.NotEmpty used ConstraintTarget#IMPLICIT where the target cannot be inferred.
我是否需要为@NotEmpty
实现验证器,或者这是hibernate或spring-boot应用程序中的错误?
注意,当我从返回类型中移除@NotEmpty
时,它可以正常工作。
答案 0 :(得分:2)
这里遇到一个有趣的角落案例,对于纯粹的约束,无法确定它是否适用于方法的参数或返回值。回到Bean验证1.1 we decided的时间,让它留给实现来处理这种情况,因为它非常罕见。
Hibernate Validator允许在约束定义上解决此案例by specifying @SupportedValidationTarget(ValidationTarget.ANNOTATED_ELEMENT)
。这是在HV 5.2中添加的,但似乎我们忘记将它用于@NotEmpty
以及可能由HV定义的其他纯组合约束。您是否可以在我们的JIRA instance?
请注意,您不应该遇到Bean Validation 2.0(HV 6.0)中定义的@NotEmpty
的问题,因为这不会被声明为纯粹的组合约束。
更新:此问题已在Hibernate Validator 6.0.3.Final中修复(并向后移植到5.3.6.Final和5.4.2.Final)。