JSR 303 Bean验证可以与Spring Data Rest一起使用吗?

Mar*_*ijk 12 java spring-data-jpa spring-data-rest spring-boot

我从文档了解http://docs.spring.io/spring-data/rest/docs/2.1.2.RELEASE/reference/html/validation-chapter.html,我可以与某些前缀声明验证.

我正在使用JSR 303,因此我的域实体使用验证注释进行注释.

可以 - 如果是,如何 - 我使用JSR 303 Bean验证与Spring Data Rest?

PS:我正在使用Spring Boot

Mar*_*ijk 14

这似乎有效:

@Configuration
protected static class CustomRepositoryRestMvcConfiguration extends RepositoryRestMvcConfiguration {

    @Autowired
    private Validator validator;

    @Override
    protected void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
        validatingListener.addValidator("beforeCreate", validator);
        validatingListener.addValidator("beforeSave", validator);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 创建改进请求以自动/可配置:https://jira.spring.io/browse/DATAREST-370 (2认同)

her*_*rau 5

要自定义spring数据休息配置,请注册RepositoryRestConfigurer(或扩展RepositoryRestConfigurerAdapter)并实现或覆盖configureValidatingRepositoryEventListener特定用例的方法.

public class CustomRepositoryRestConfigurer extends RepositoryRestConfigurerAdapter {

    @Autowired
    private Validator validator;

    @Override
    public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
        validatingListener.addValidator("beforeCreate", validator);
        validatingListener.addValidator("beforeSave", validator);
    }
}
Run Code Online (Sandbox Code Playgroud)