SpringBoot報錯inferred type 's'for type parameter 's' is not within its bound三種解決辦法(親測可用)

背景瞭解:

在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;
    }

堅信答案就在錯誤中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章