为了账号安全,请及时绑定邮箱和手机立即绑定

return girlRepository.findOne(id);报错的原因

之所以return girlRepository.findOne(id);一直报错的原因是版本不同!切记,版本一定要一样!我把版本改成1.4.1问题马上解决了!哎,浪费时间

正在回答

11 回答

0、在springboot1.x的时候是有findOne(Integer id)的,但是到2.x后就没有了,更换springboot的版本,使用1.x的版本就不存在这个问题了

1、使用findById(Integer id).get(),但这里需要注意的是,如果存在会直接返回需要查找的信息,如果不存在就会报异常,所以在使用的时候需要做一下判断:findById(id).isPresent()

2、使用findById(Integer id).orElse(null),这里表示,如果id存在则返回需要查找的信息,如果不存在,这里设置为返回null(推荐)



0 回复 有任何疑惑可以回复我~

这个是我的代码,girl换成了user

controller:

private String findByid(@RequestParam("id") Long id){
    try {
        return userRespository.getOne(id).toString();
    }
    catch(EntityNotFoundException e){
        return new User().toString();
    }
}

同时在jpa里写上这个:

User getOne(Long id) throws EntityNotFoundException;

问题是得到解决了,但是总感觉有些麻烦,不知道谁有更好的办法

0 回复 有任何疑惑可以回复我~

可以通过新方法来获取girl

girlRespository.getOne(id);

如果返回的是个空值建议使用Optional

0 回复 有任何疑惑可以回复我~

直接换这种用法

girlRepository.findById(id).get()

不要随意修改版本,有事会出现大问题

1 回复 有任何疑惑可以回复我~

可以用findById(id).get()

4 回复 有任何疑惑可以回复我~
#1

慕瓜8564777

解决了,2.0,感谢。
2018-09-16 回复 有任何疑惑可以回复我~
#2

慕瓜8564777

还有删除//通过Id删除一个女生,DELETE @DeleteMapping(value="/girls/{id}") public void girlDelete(@PathVariable("id") Integer id){ girlRepository.deleteById(id); }
2018-09-16 回复 有任何疑惑可以回复我~

你这样并不能解决问题呢,以后都是新版本,你不能一直用旧版本吧。。

我想知道新版本的怎么写。。。

2 回复 有任何疑惑可以回复我~
#1

__ACTION 回复 知音1005

@GetMapping(value = "/girls/{id}") public Girl girlGetOne(@PathVariable("id") Integer id) { Girl girl = girlRepository.findById(id).get(); return girl; }
2018-05-30 回复 有任何疑惑可以回复我~
#2

__ACTION 回复 知音1005

我是用的findById
2018-05-30 回复 有任何疑惑可以回复我~
#3

点点小魔王 回复 知音1005

这个方法可行。我一开始也是使用getOne方法,观察后台,sql执行是正确的,不过都加了别名,怀疑就是别名导致无法匹配实体类的get/set方法导致的。
2018-06-25 回复 有任何疑惑可以回复我~
#4

慕UI2199914 回复 __ACTION

很有用,收益了
2019-04-24 回复 有任何疑惑可以回复我~
查看2条回复

我上面写的很清楚啊。就是改个版本而已,如果你还是出错的话。可能是其他问题,我没有看过你的代码、我也不是算命的。我也不清楚具体问题啊。我这个博客,把这个项目的所有过程都写的很清楚,你可以对照着,自己找问题吧。学习要靠自己。好了。如果你嫌麻烦的话,就不看吧。不回了。

0 回复 有任何疑惑可以回复我~

我改完了报了 一堆错,启动不了,我又给改回来了,改pom里面的版本需要注意什么?

1 回复 有任何疑惑可以回复我~
#1

ali是个小太阳 提问者

晕。。你没有maven基础的吗
2018-05-22 回复 有任何疑惑可以回复我~
#2

什伴1986 回复 ali是个小太阳 提问者

啊 。。半路出家,前两天才看完maven
2018-05-22 回复 有任何疑惑可以回复我~
#3

什伴1986 回复 ali是个小太阳 提问者

教教我吧,弄得我现在不敢瞎改版本了
2018-05-22 回复 有任何疑惑可以回复我~
查看1条回复

我也是这个问题,修改什么版本?

0 回复 有任何疑惑可以回复我~
#1

ali是个小太阳 提问者

把版本改成1.4.1问题马上解决了!
2018-05-22 回复 有任何疑惑可以回复我~
#2

ali是个小太阳 提问者

在pom文件里面修改
2018-05-22 回复 有任何疑惑可以回复我~

之所以return girlRepository.findOne(id);一直报错的原因是版本不同!切记,版本一定要一样!我把版本改成1.4.1问题马上解决了!哎,浪费时间

3 回复 有任何疑惑可以回复我~
#1

慕粉8087750

大神,我一修改版本,项目就运行不了,报错500.我一开始的版本2.0.1.,希望大神解答,谢谢
2018-05-28 回复 有任何疑惑可以回复我~
#2

ali是个小太阳 提问者 回复 慕粉8087750

把版本改成1.4.1
2018-05-28 回复 有任何疑惑可以回复我~
#3

慕粉8087750 回复 ali是个小太阳 提问者

改成1.4.1项目就运行不了了,报错Http Status 500:Template mode "HTML" has not been configured
2018-05-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
2小时学会Spring Boot
  • 参与学习       151654    人
  • 解答问题       1079    个

Spring Boot入门视频教程,你将学会使用Spring Boot快速构建应用程序

进入课程

return girlRepository.findOne(id);报错的原因

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信