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);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With