我正在使用Hibernate验证程序来验证我的bean。
实际上我对我的POM有这种依赖性
<!-- Hibernate validator - Bean validation API Implementation -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.11.Final</version>
</dependency>
<!-- Verify validation annotations usage at compile time -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-annotation-processor</artifactId>
<version>6.0.11.Final</version>
</dependency>
<!-- Unified Expression Language - Spec -->
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.1-b06</version>
</dependency>
<!-- Unified Expression Language - Implementation -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.6</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
这是我的豆子的香料
import org.hibernate.annotations.ColumnDefault;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
public class Casa {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Integer id;
@Column(name="nomcaac") @NotBlank(message = "{casa.nomcaac.null}") @Size(min = 0, max = 300, message = "{casa.nomcaac.size}")
private String nomcaac;
现在,当我尝试验证我的bean时,出现了此错误消息
找不到约束验证器 'javax.validation.constraints.NotBlank'验证类型 'java.lang.String'。检查“ nomcaac”的配置
我不知道我的问题是什么,我认为根据此page,我具有正确的依赖关系。
答案 0 :(得分:2)
@NotBlank
是Bean Validation 2.0中的新功能,因此我怀疑您的类路径中有某种旧的Hibernate Validator版本(例如5.x)。
您应该使用mvn dependency:tree
检查依赖性树(并且您的Web应用程序正在寻找旧的jar)。
顺便说一句,您的javax.el依赖关系不正确:请参考https://github.com/hibernate/hibernate-validator/#using-hibernate-validator以获取正确的依赖关系。