我有一个运行良好的 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/