SpringBoot2中JPA的findOne()方法异常
Posted 一起学编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot2中JPA的findOne()方法异常相关的知识,希望对你有一定的参考价值。
在用SpringBoot 2的时候,发现使用Spring Data JPA 的自带findOne()方法时,不像以前那样可以通过直接使用:
xxxRepository.findOne(id)
传入id来获取一个对象。查看源码发现findOne方法变成了如下所示:
<S extends T> Optional<S> findOne(Example<S> var1);
原来是自从spring boot 2.0以后,由于用上了Java 8 的Optional,废除了原来的findOne(Id)。
原来是自从spring boot 2.0以后,由于用上了Java 8 的Optional,废除了原来的findOne(Id)。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。
findById()方法也使用了Optional,废除了原来的方法:
Optional<T> findById(ID var1);
解决方法:调用findById方法返回Optional对象,再调用Optional的get()方法返回该对象,即用xxxRepository.findById(id).get()代替原来的findOne(id)方法。
以上是关于SpringBoot2中JPA的findOne()方法异常的主要内容,如果未能解决你的问题,请参考以下文章
当使用getOne和findOne方法时,Spring Data JPA
带有 Spring Data JPA 的 Spring Boot 为 Oracle 数据库上的 findOne(...) 提供了无效字符问题