背景瞭解:
在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;
}
堅信答案就在錯誤中