【springboot(JPA作为持久层)学习笔记五】spingboot版本使用2.3.4时,JPA中**Repository.findOne、**Repository.delete方法报错

最近学习一个项目练手时遇到的问题

1.错误如下(2个错误JPA中findOne、delete方法报错):

1.1.在用SpringBoot 2.3.4的时候,发现使用Spring Data JPA 中的findOne()方法时,不像SpringBoot 1.5.x那样可以通过直接使用:

xxxRepository.findOne(id)

1.2service层
在这里插入图片描述
1.3dao层
在这里插入图片描述
1.4解决办法:xxxRepository.findById(id).get()代替原来的findOne(id)方法。
在这里插入图片描述

2.原因:

2.1.查看源码发现findOne方法变成了如下所示:

<S extends T> Optional<S> findOne(Example<S> var1);

2.2.自从spring boot 2.0以后,由于用上了Java 8 的Optional,废除了原来的findOne(Id)。

Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

2.3.通过查看源码,findById()方法也使用了Optional,废除了原来findone的方法:
在这里插入图片描述
2.4同时也注意一下根据id删除的方法在springboot2.x版本中也有了改变
在这里插入图片描述
2.5解决方法:xxxRepository.deleteById代替原来的delete(id)方法。
在这里插入图片描述

世上最让人头疼的时候是看看源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值