I have a Mongodb repository that is working fine:
@RepositoryRestResource(collectionResourceRel = "audits", path = "audits")
public interface AuditRepository extends MongoRepository<Audit, String> {
}
I have a bean, Audit
that is:
@Data
@Document
@JsonIgnoreProperties(ignoreUnknown = true)
@Validated
public class Audit {
@Id private String id;
@NotNull
private Date start;
@NotNull
private Date end;
}
I'm using Lombok for getters/setters.
I expect the Repository to validate the Audit
bean, but it saves an audit bean with null
in the start and end date.
I added this to the build.gradle
:
compile("org.springframework.boot:spring-boot-starter-validation")
How do I tell the REST service to use validation? I don't see anything in RepositoryRestConfiguration
that will turn it on...
You must import validations libs:
maven
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.2.Final</version>
</dependency>
or gradle
compile group: 'org.hibernate', name: 'hibernate-validator', version: '5.4.2.Final'
and you must configure two beans:
@Bean
public LocalValidatorFactoryBean localValidatorFactoryBean() {
return new LocalValidatorFactoryBean();
}
@Bean
public ValidatingMongoEventListener validatingMongoEventListener(LocalValidatorFactoryBean lfb) {
return new ValidatingMongoEventListener(lfb);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.