找不到findOne()方法

问题:
以前一直用的repository.findOne(ID id);,这次用SpringBoot构建新项目后,并没有找到这个findOne(ID id),只有另外的
在这里插入图片描述
在这里插入图片描述
分析:
看了下jpa的依赖,因为SpringBoot的版本是2.0.0的,所以spring-data-jpa的版本也是2.0.x。
拿2.0.5的源码和之前可行的1.11.9做了对比。
在这里插入图片描述
对比CrudRepository接口中:
在这里插入图片描述
各种方法名改变蒙蔽。。然而其实也一样,不过findOne方法的返回值也改了,变成了 Optional。才疏学浅不知道什么意思,只能点进去看一下了。

其中:
在这里插入图片描述
get()方法可以获取到值,但是直接这样写的话如果值不存在就要抛异常。所以要先做判断,值存在再get(),或者就是写在try-catch里。
在这里插入图片描述
也可以用它的findById(id).orElse(null); 存在就会直接返回值,如果不存在会返回别的值,这里不存在返回的是null,(orElse里可以给默认值)。

解决:
如图吧

结果:
存在时都一样,就是输出了该类目重写的toString方法里的数据。
不存在时:

在这里插入图片描述
所以就是我所能解决的有两个方法就是:
1.使用回以前的版本1.5.9等等这些的,还是用findOne(ID id)的方法。
2.就是用findById(ID id),然后用.get()前要判断是否是null.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zachary_CN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值