【发布时间】:2015-11-22 17:51:14
【问题描述】:
我正在处理一个奇怪的问题,我在做集成测试,调用我的控制器从数据库中获取一个不存在的对象。
public Optional<T> get(Long id) {
try {
return Optional.ofNullable(repository.getOne(id));
} catch(EntityNotFoundException e) {
return Optional.empty();
}
}
当getOne(…) 找不到任何东西时,我期待EntityNotFoundException 但实际上什么也没有。如果我检查我的结果,我可以看到我有一个带有处理程序链接的空实体“抛出EntityNotFoundException”,但我们没有进入捕获,我返回这个奇怪实体的可选。
我无法理解这种行为。
【问题讨论】:
-
你为什么期待一个例外? javadoc 没有提到异常。
-
当您在不存在的数据上调用 getOne() 时,这是经典的 JPA 行为。
-
此外,我可以看到这个异常被抛出但以某种方式被spring数据处理?
标签: java spring jpa spring-data spring-data-jpa