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/

相关文章:

java8 将数学运算符应用于函数的可能性

java - Spring:检查当前拦截器

javascript - 不知道为什么 AJAX 表单数据向 MVC Controller 发送 null

html - Thymeleaf 下拉菜单中的默认值

node.js - 使用 Mongoose 缓解 MongoDB 注入(inject)攻击

java - 如何知道 java Mongo 驱动程序是否与给定的 Mongo 服务器兼容?

java.sql.SQLException : ORA-01501: CREATE DATABASE failed ORA-01100: database already mounted

java - 有没有办法在另一个EMR作业中调用EMR群集的JobFlowId?

java - TomEE 嵌入式 ActiveMQ 使用 JMSContext : No ManagedConnections available within configured blocking timeout ( 5000 [ms] )

node.js - 连接 ECONNREFUSED 127.0.0.1 :27017'