【发布时间】:2016-04-05 21:59:23
【问题描述】:
我正在使用 Spring Data Rest,一切顺利。
我想对我的实体应用验证 (JSR 303)。
spring 文档说我可以通过几种方式拦截应用程序事件(我无法开始工作,而且现在 spring.io 似乎已关闭)。
但是,我确实通过 put 让它工作了
@已验证
在我的存储库上:
@Validated
@RepositoryRestResource(collectionResourceRel = "workers", path = "workers")
public interface WorkerRepository extends PagingAndSortingRepository<Worker, Long> {
}
它会抛出异常。问题是它是一个 spring 异常,甚至不是根异常,我需要基本上进行验证并将它们转换为自定义实体有效负载:
{
"foo": "must be of length 10",
"baz": "Must match pattern '[A-Z]+'"
}
所以,简而言之,我想
- 使用 JSR 303 验证实体
- 使用 400: 和映射或字段生成 HTTP 实体 -> 错误
最直接的方法是什么? 我也偶然发现了这个:
Detected @ExceptionHandler methods in repositoryRestExceptionHandler
这似乎很有用。当我结帐该课程时,它看起来确实是我所需要的
【问题讨论】:
标签: java spring spring-data-rest