1. 程式人生 > >繼承JpaRepository後,找不到findOne()方法

繼承JpaRepository後,找不到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<T>。才疏學淺不知道什麼意思,只能點進去看一下了。

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

解決:

如圖吧
這裡寫圖片描述
結果:
存在時都一樣,就是輸出了該類目重寫的toString方法裡的資料。
不存在時:
這裡寫圖片描述

所以就是我所能解決的有兩個方法就是:
1.使用回以前的版本1.5.9等等這些的,還是用findOne(ID id)的方法。
2.就是用findById(ID id),然後用.get()前要判斷是否是null,或者直接try-catch,或者用.orElse(null),推薦orElse()

有什麼偏差的地方歡迎交流。

相關推薦

繼承JpaRepositoryfindOne()方法

可以直接拖到最後看解決方法。 問題: 以前一直用的repository.findOne(ID id);,這次用SpringBoot構建新專案後,並沒有找到這個findOne(ID id),只

MySql安裝到服務的處理方法

使用cmd窗體,找到安裝目錄C:\Program Files\MySQL>cd "MySQL Server 5.5"C:\Program Files\MySQL\MySQL Server 5.5>cd binC:\Program Files\MySQL\MySQL

MAC升級到排程中心或者mission control;

很多人在mac最左邊的介面裡面儲存了日期,mac升級後找不到這個介面了。問題是升級後自動關閉了這個選項,只需要開啟就好; 開啟系統偏好設定----選擇排程中心(mission control) 選擇儀表盤設定為作為空間(as Space) 完美解決。

springboot打jar包到mybatis的實體類

剛剛接觸spring boot,專案中整合了mybatis,但配置沒用mybatis-spring-boot-autoconfigure自動配置, 導致mybatis的配置: mybatis.type-aliases-package=com.example.domain

Visual Studio 2015 安裝完成到ASP.NET工程模板

我在安裝Visual Studio 2015後,竟然發現找不到ASP.NET工程模板。 於是嘗試了各種方法,包括完全安裝、卸了社群版,裝企業版,卸了企業版又裝回社群版。都不行。 最後在開始頁面發現了ASP.NET的連結:https://www.asp.net

在c#中引用Microsoft.SqlServer.Types系統執行報"未能載入 SqlServerSpatial140.dll到指定的模組(異常來自......)的解決方法

1.在資源管理器中檢視C:\Windows\System32或者C:\Windows\SysWOW64下有沒有SqlServerSpatialXXX.dll的檔案,如果沒有,在網上下載後,把檔案重新命名為報錯的dll檔名,將其放入此目錄下 2.如果有,如下圖,我將原本的130改為140,程式便不

使用筆記本撥通openvpn筆記本能上網的解決方法

openvpn iptables 網上也流傳著一些,解決方法:一:方法1:配置ip轉發,iptables規則來轉發首先,修改openvpnserver端的ip轉發功能echo 1 > /proc/sys/net/ipv4/ip_forward然後配置iptables,使用NAT技術iptable

關於xshell連接阿裏雲服務器報錯的問題git安裝失敗到git包

rip https 繼續 bubuko image 錯誤 pos 完成後 ges 1.如果安裝git出現這樣的錯誤的,在接下來鍵入這樣一行命令 curl https://packages.gitlab.com/install/repositories/gitlab/git

安裝oracle 11g時報啟動服務出現錯誤到OracleMTSRecoveryService的解決方法

是否 卸載 名稱 window7 ntc oca 高級 很多 bho 很多人在安裝orcl數據庫時,出現很多報錯,我也不例外,因上次數據庫出現問題,無法修復,只能從新安裝,無奈的是,安裝時報啟動服務出現錯誤,找不到OracleMTSRecoveryService錯MMP,心

ThinkPad E480安裝ubuntu沒有無線網絡卡驅動到wifi的解決方案

先安裝的ubuntu版本是ubuntu-16.04.3-desktop-amd64.iso 安裝後通過cat /proc/version或者uname -rs檢視linunx核心版本,其linux核心版本為4.10。 網上查到linux4.15及以上的linux核心才能支援此筆記本的無線網絡

#程式設計師花數萬當學費出來到工作:是社會給活路!

如今的網際網路時代,程式設計師這一職業處於高薪的風口浪尖位置,然而程式設計是一個技術活,並不是人人都能做的,可是各種有關程式設計師高薪的傳聞還是吸引了許多人來當程式設計師,這其中除了科班畢業的程式設計師,還有不少從傳統行業轉行過來的,這些人並沒有什麼程式設計基礎,並不能直接開展工作,所以有的則會通過

winform 基類form被封裝了方法使用override 將 該隱藏方法調出來

  protected override bool ProcessCmdKey(ref Message msg, Keys keyData)         {            &nb

vs程式執行時報錯"未能載入 SqlServerSpatialxxx.dll到指定的模組(異常來自......)"的解決方法

報錯原因: 因為程式中引用了Microsoft.SqlServer.Types程式集,正常情況下程式會去c:\windows\system32或者c:\windows\syswow64目錄中尋找,所以找不到。 其實你引用時已經在bin\debug\SqlServerTypes資料夾下生成了報

MySql EF6 DBFirst 嚮導無法生成 edmx 解決方法(同:您的專案引用了最新實體框架;但是到資料鏈接所需的與版本相容的實體框架資料庫提供程式)

使用 MySql EF6 DBfirst 生成模型時經常會遇到EF6模式無法選擇的情況究其原因, 還是因為沒有正確的使用 Connector/Net. 下面說一下使用方法. 使用 MySql DBFirst 前先確保安裝了 MySql, MySQL for Visual Studio,&n

安裝lombokeclipse能自動生成getter和setter方法

原因: lombok版本問題,我安裝了lombok後,eclipse不能自動生成getter和setter方法,我替換了一下版本,換成了lombok v1.16.6,就可以了,具體安裝lombok的教程,參考我另一篇文章 http://blog.csdn.net/kingS

系統跟新VS2012能新建專案能載入專案問題的解決方法

【問題】 【1】VS2012不能夠新建專案,也不能載入專案 【2】出現不能夠正確在家Visual C++ Package 【解決方法】 到微軟官網下載VS2012更新 KB2781514,大

IDEA引入包和類仍提示方法的問題

方法一:在專案名稱上右鍵,選擇MAVEN,然後點選reimport即可(如下圖)。但我的還是報錯並未解決。 方法二:左上角點選file,選擇Invalidate Caches/Restart,然後點選左邊第一個按鍵即可。我的專案中此問題得以解決。 3、

python打包exehttps到cacert.pem證書解決方法

背景:程式中引用了requests庫,用requests庫傳送了https請求,一切正常但用Py2exe打包成exe後,報錯:IOError: Could not find a suitable TLS CA certificate bundle, invalid path:

引入zepto用tap事件為什麼有時候會觸發兩次到根本原因??

1原因及解決方案最新版Chrome綁定了三個事件touchend MSPointerUp pointerup,touchend是觸控相關的事件,MSPointerUp 是ie10的觸控事件,pointerup是指標事件。可能是以前的chrome不支援pointerup事件,現

Visio到檔案請確定檔名是否正確再試一次

1 背景 此前在解除安裝office時不懂事,亂刪了一些註冊值等資訊,導致後來儘管成功裝上了office2016並激活,但是安裝的VisioPro2013卻出了問題,無法使用。 在開啟visio檔案或者想要在控制面板中解除安裝Visio軟體時,均提示“Wind