如何在 Spring 引导控制台应用程序中验证实体?



我有一个使用 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>

我希望看到验证错误,因为group0但我没有看到任何问题,并且在数据库中新添加的行的值0。我还需要执行哪些操作才能启用验证?

尝试使用import javax.validation.Valid;@Valid

当目标参数未能通过验证时,Spring Boot 会抛出 MethodArgumentNotValidException 异常。

将其添加到pom中就可以解决问题

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

最新更新