找不到findOne()方法

問題:
以前一直用的repository.findOne(ID id);,這次用SpringBoot構建新項目後,並沒有找到這個findOne(ID id),只有另外的
在這裏插入圖片描述
在這裏插入圖片描述
分析:
看了下jpa的依賴,因爲SpringBoot的版本是2.0.0的,所以spring-data-jpa的版本也是2.0.x。
拿2.0.5的源碼和之前可行的1.11.9做了對比。
在這裏插入圖片描述
對比CrudRepository接口中:
在這裏插入圖片描述
各種方法名改變矇蔽。。然而其實也一樣,不過findOne方法的返回值也改了,變成了 Optional。才疏學淺不知道什麼意思,只能點進去看一下了。

其中:
在這裏插入圖片描述
get()方法可以獲取到值,但是直接這樣寫的話如果值不存在就要拋異常。所以要先做判斷,值存在再get(),或者就是寫在try-catch裏。
在這裏插入圖片描述
也可以用它的findById(id).orElse(null); 存在就會直接返回值,如果不存在會返回別的值,這裏不存在返回的是null,(orElse裏可以給默認值)。

解決:
如圖吧

結果:
存在時都一樣,就是輸出了該類目重寫的toString方法裏的數據。
不存在時:

在這裏插入圖片描述
所以就是我所能解決的有兩個方法就是:
1.使用回以前的版本1.5.9等等這些的,還是用findOne(ID id)的方法。
2.就是用findById(ID id),然後用.get()前要判斷是否是null.

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