5 回答
TA贡献1804条经验 获得超7个赞
在内部检查最小大小为 1 和 null。在 @NotEmpty 的文档中,明确提到:"Asserts that the annotated string, collection, map or array is not {@code null} or empty."
TA贡献2016条经验 获得超9个赞
检查 @NotEmpty 的导入:
org.hibernate.validator.constraints.NotEmpty
这个对我有用!
我使用 Spring Boot2.5.5
和 Hibernate 验证器6.2.0.final
。
请注意,这javax.validation.constraints.NotBlank
不起作用!
TA贡献1803条经验 获得超3个赞
我用你的代码片段创建了一个演示项目并且它可以工作,你能检查一下有什么不同吗?你真的导入了吗javax.validation.constraints.NotEmpty
?
------------------------------------------------------
T E S T S
-------------------------------------------------------
Running nl.martinvw.test.PersonTest
jul 17, 2019 2:38:01 PM org.hibernate.validator.internal.util.Version <clinit>
INFO: HV000001: Hibernate Validator 6.1.0.Alpha5
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.353 sec
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
TA贡献1735条经验 获得超5个赞
还会检查 @NotNull 并另外检查所提供对象的大小/长度。对于您上面的测试用例,您将获得 1 次违规,因为您没有设置作业名称(其为空)并且您配置为 @NotEmpty(message = "mandatoryParametersMissing") private String name;
所以 @NotEmpty 涵盖了您的 @NotNull 案例。
我运行了您上面的代码并且运行良好。我使用了以下依赖项
我运行了您的代码,它对我来说工作正常。检查@NotEmpty 的导入
org.hibernate.validator.constraints.NotEmpty
我使用了以下依赖项
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.13.Final</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
TA贡献1770条经验 获得超3个赞
似乎问题出在依赖项上,由于某种原因在类路径中 validation-api 的 jar 版本是错误的我只是删除了类路径中的所有 jar 并再次添加它们并且错误消失了。
添加回答
举报