Miałem ten sam problem, ale samo włączenie walidacji nie działało dla mnie, działało to zarówno z JPA, jak i MongoDb, aby zaoszczędzić każdemu, kto spędza na tym wieki. To nie tylko sprawia, że walidacja działa, ale otrzymuję ładny spokojny błąd 400 zamiast domyślnego 500.
Musiałem to dodać do moich zależności build.gradle
compile('org.hibernate:hibernate-validator:4.2.0.Final')
i ta klasa konfiguracyjna
@Configuration
public class CustomRepositoryRestConfigurerAdapter extends RepositoryRestConfigurerAdapter {
@Bean
public Validator validator() {
return new LocalValidatorFactoryBean();
}
@Override
public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
validatingListener.addValidator("afterCreate", validator());
validatingListener.addValidator("beforeCreate", validator());
validatingListener.addValidator("afterSave", validator());
validatingListener.addValidator("beforeSave", validator());
}
}