我有一个使用 Spring 数据的 Spring Boot 控制台应用程序。
我有一个简单的 jpa 存储库
public interface MyRepository extends JpaRepository<MyEntity, Integer> {
}
以及像这样定义的实体
import javax.validation.constraints.Min;
// ....
@Entity
@Table(schema = "mySchema", name = "myTable")
public class MyEntity {
// ...
@Column(nullable = false)
@Min(100)
private Integer group;
// ...
}
当我保存此实体时
myRepository.save(myEntity);
聚 甲醛:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.0.Final</version>
</dependency>
</dependencies>
我希望看到验证错误,因为group
0
但我没有看到任何问题,并且在数据库中新添加的行的值0
。我还需要执行哪些操作才能启用验证?
尝试使用import javax.validation.Valid;
@Valid
当目标参数未能通过验证时,Spring Boot 会抛出 MethodArgumentNotValidException 异常。
将其添加到pom中就可以解决问题
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>