背景了解:
在SpringBoot整合Jpa的时候,写了一个接口CityRespository继承了JpaRespository,(我要调用这里的方法实现数据库的增删改查)在调用接口CityRespository中的默认findOne方法时报以下错误,错误信息如下
错误分析:
Ctrl+鼠标左键点进去发现CityRespository接口中没有findOne方法,甚至CityRespository接口继承的接口JpaRespository,和CityRespository接口继承的接口JpaRespository继承的接口PagingAndSortingRepository和QueryByExampleExcutor中都没有findOne方法。
如下图:
解决办法:
(1)自定义个一个findOne方法,这很符合我们的开发逻辑,相信很多人都会这么做
例如:
public interface CityRepository extends JpaRepository<City,Integer>{
city findOne(int cityId);
}
(2)降低SpringBoot的版本为1.5。百度了一下才知道,SpringBoot2.0版本就没有这个方法
(3)网友给出的解决办法是修改调用方法的代码
例如:
@GetMapping(value = "getCityById")
public City getCityById(int cityId){
//City city = cityRepository.findOne(cityId);
City city = cityRepository.findById(cityId).orElse(null);
return city;
}
坚信答案就在错误中