【发布时间】:2019-09-02 09:00:01
【问题描述】:
我想使用CRUDRepository的findOne()方法,但是无法使用。
我正在使用CRUDRepository 进行持久化。我检查了 CRUDRepository,但 findOne() 方法不可用。当我搜索 CRUDRepository 的 Javadoc 时,它显示 findOne() 方法在那里。
@Override
public MultiplicationResultAttempt getResultById(Long resultId) {
return attemptRepository.findOne(resultId);
}
【问题讨论】:
-
如果您使用的是最新版本的 Spring Data,请使用
findById而不是findOne。 -
但它返回一个 Optional,我不需要使用 Optional。有没有其他方法可以做到这一点?
-
使用可选的
repo.findById(id).orElse(null)来模仿经典行为。虽然我建议使用Optional。 -
好的,我试试上面的sn-p。
-
@farhanlq: 但它返回一个 Optional,我不需要使用 Optional。有没有其他方法可以做到这一点? -> 在您自己的自定义存储库中覆盖方法 findOne,使其永远不会返回 Optional,但在内部它将使用 spring 方法:stackoverflow.com/questions/27950246/…
标签: java spring rest spring-boot repository