我在项目中使用spring-data-rest,正在考虑引入验证。
我可以通过扩展RepositoryRestConfigurerAdapter手动添加我的验证器,并覆盖configureValidatingRepositoryEventListener来添加我的验证器。
执行验证,但我收到500响应而不是预期的400.
调用堆栈的顶部如下所示:
threw exception [Request processing failed; nested exception is org.springframework.data.rest.core.RepositoryConstraintViolationException: Validation failed] with root cause
org.springframework.data.rest.core.RepositoryConstraintViolationException: Validation failed
at
org.springframework.data.rest.core.event.ValidatingRepositoryEventListener.validate(ValidatingRepositoryEventListener.java:179) ~[spring-data-rest-core-2.5.2.RELEASE.jar:na]
at
org.springframework.data.rest.core.event.ValidatingRepositoryEventListener.onBeforeCreate(ValidatingRepositoryEventListener.java:96) ~[spring-data-rest-core-2.5.2.RELEASE.jar:na]
似乎RepositoryRestExceptionHandler handleRepositoryConstraintViolationException方法由于某种原因没有获取异常。
我见过其他类型的约束,例如MongoDB唯一索引约束成功映射到400响应。
任何有关如何解决此问题的想法都将受到赞赏。