java - Spring Boot MongoRepository 忽略验证

标签 java spring mongodb validation spring-boot

我有一个运行良好的 Mongodb 存储库:

@RepositoryRestResource(collectionResourceRel = "audits", path = "audits")
public interface AuditRepository extends MongoRepository<Audit, String> {
}

我有一个 bean,Audit 即:

@Data
@Document
@JsonIgnoreProperties(ignoreUnknown = true)
@Validated
public class Audit {
    @Id private String id;

    @NotNull
    private Date start;

    @NotNull
    private Date end;
}

我将 Lombok 用于 getter/setter。

我希望存储库验证 Audit bean,但它保存了一个在开始日期和结束日期都为 null 的 audit bean。

我将其添加到 build.gradle 中:

编译("org.springframework.boot:spring-boot-starter-validation")

如何告诉 REST 服务使用验证?我在 RepositoryRestConfiguration 中看不到任何可以打开它的内容...

最佳答案

您必须导入验证库:

专家

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.4.2.Final</version>
</dependency>

或渐变

compile group: 'org.hibernate', name: 'hibernate-validator', version: '5.4.2.Final'

并且你必须配置两个bean:

@Bean
public LocalValidatorFactoryBean localValidatorFactoryBean() {
    return new LocalValidatorFactoryBean();
}

@Bean
public ValidatingMongoEventListener validatingMongoEventListener(LocalValidatorFactoryBean lfb) {
    return new ValidatingMongoEventListener(lfb);
}

关于java - Spring Boot MongoRepository 忽略验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48242963/

相关文章:

java - Spring:嵌套的应用程序上下文

java - 如何为@CachePut定义多个键?

mongodb - 获取第一个聚合结果并在附加元素中聚合所有其他结果

javascript - 复合索引覆盖以前的文档

java - 加性高斯白噪声 Java(dB)

java - 如何摆脱 javafx TableView 中的 java 堆空间内存问题?

java - 返回按钮执行上一个功能

java - 转换到按钮控件(Android): what exactly is that?

java - 如何在 Spring 中将错误消息从 bean 传递到表单

mongodb - 将独立集转换为副本集的困难