在返回类型上使用@NotEmpty时出现hibernate验证器错误

时间:2017-10-13 14:12:30

标签: java spring hibernate spring-boot hibernate-validator

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时,它可以正常工作。

1 个答案:

答案 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)。