国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Data JPA中的getOne,findOne以及findById

heartFollower / 840人閱讀

摘要:我們今天聊一下里的三個方法,分別是,以及。我當(dāng)初也是這么想的,后來在寫作業(yè)的過程中出錯了,真相只有一個。最后使用,也能準(zhǔn)確的查到結(jié)果,有趣的是打印了三條查詢語句。注文中使用的版本為。

我們今天聊一下Spring Data JPA里的三個方法,分別是getOnefindOne以及findById
咋一看三個方法都能返回一個結(jié)果集,用哪個好像都沒問題。我當(dāng)初也是這么想的,后來在寫作業(yè)的過程中出錯了,真相只有一個。
我的例子是查詢一個一對一映射關(guān)系的實體,極為簡單,我就不上代碼了;用findById則可以實現(xiàn)我們的需求,而使用getOne查詢后對結(jié)果集進(jìn)行打印,出現(xiàn)下面的異常。

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

這個異常好像跟使用哪個方法沒太大的關(guān)系,因為他是在得到查詢的結(jié)果集后,打印這個結(jié)果集的時候出現(xiàn)的,且映射關(guān)系默認(rèn)使用FetchType.EAGER,實體的toString方法僅對實體自己的屬性做打印,不處理映射關(guān)系,莫非是因為得到的一個代理對象,不能映射成實體?還希望路過的高人指點(diǎn)一二。

最后使用findOne,也能準(zhǔn)確的查到結(jié)果,有趣的是打印了三條查詢語句。

翻開官方的API,找找這幾個磨人的方法都在哪:

getOne來自JpaReposiroty接口,對于傳入的標(biāo)識則返回一個實體的引用;且取決于該方法的實現(xiàn),可能會出現(xiàn)EntityNotFoundException,并會拒絕一些無效的標(biāo)識;

findById來自CrudRepository接口,通過它的id返回一個實體;

findOne來自QueryByExampleExecutor接口,返回一個通過Example匹配的實體或者null

那他們的區(qū)別也就是:

getOne返回一個實體的引用,無結(jié)果會拋出異常;

findById返回一個Optional對象;

findOne返回一個Optional對象,可以實現(xiàn)動態(tài)查詢;

Optional代表一個可能存在也可能不存在的值。

注:文中使用的版本為Spring Data JPA 2.1.8.RELEASE

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/77881.html

相關(guān)文章

  • springboot+jpa 整合與基本應(yīng)用

    摘要:還定義了一個運(yùn)行時,用于處理對象的查詢和管理事務(wù)。是持久化規(guī)范中的一個最新版本。旨在統(tǒng)一,,,從目前來看,的確取得了成功。目前大多數(shù)持久化供應(yīng)商已經(jīng)發(fā)布了的實現(xiàn),并被行業(yè)和用戶采用。這些包括由和收購,由收購和由和收購。需注意為時為第一頁。 什么是jpaJPA (The Java Persistence API)是用于訪問,持久化和管理 Java 對象/類與關(guān)系型數(shù)據(jù)庫之間的數(shù)據(jù)交互的 ...

    nemo 評論0 收藏0
  • springboot_database項目介紹

    摘要:操作操作對象設(shè)置緩存時間有效時間等待等待設(shè)置為的時候后面可能取到值,的過期時間有延遲注意操作對象時對象需要實現(xiàn)序列化接口兩者操作互不影響生成為生稱為數(shù)據(jù)庫文件相關(guān)相關(guān)相關(guān)相關(guān)相關(guān)相關(guān)相關(guān)相關(guān)相關(guān)相關(guān)相關(guān)相關(guān) springboot_database springboot1.5.7集成mybatis、jpa、redis、mongodb,對不同數(shù)據(jù)庫進(jìn)行操作的實例項目代碼獲取:https:/...

    tracymac7 評論0 收藏0
  • Spring Boot QuickStart (5) - Spring Data JPA

    摘要:關(guān)聯(lián)關(guān)系的關(guān)聯(lián)關(guān)系定義上,感覺并不是很靈活,姿勢也比較難找。如,定義在關(guān)聯(lián)關(guān)系上的參數(shù)可以設(shè)置級聯(lián)的相關(guān)東西。因為序列化會涉及到實體類關(guān)聯(lián)對象的獲取,會觸發(fā)所有的關(guān)聯(lián)關(guān)系。 接(4) - Database 系列. Java Persistence API,可以理解就是 Java 一個持久化標(biāo)準(zhǔn)或規(guī)范,Spring Data JPA 是對它的實現(xiàn)。并且提供多個 JPA 廠商適配,如 Hi...

    sutaking 評論0 收藏0
  • Spring Boot+SQL/JPA實戰(zhàn)悲觀鎖和樂觀鎖

    摘要:所以悲觀鎖是限制其他線程,而樂觀鎖是限制自己,雖然他的名字有鎖,但是實際上不算上鎖,只是在最后操作的時候再判斷具體怎么操作。悲觀鎖和樂觀鎖比較悲觀鎖適合寫多讀少的場景。 最近在公司的業(yè)務(wù)上遇到了并發(fā)的問題,并且還是很常見的并發(fā)問題,算是低級的失誤了。由于公司業(yè)務(wù)相對比較復(fù)雜且不適合公開,在此用一個很常見的業(yè)務(wù)來還原一下場景,同時介紹悲觀鎖和樂觀鎖是如何解決這類并發(fā)問題的。 公司業(yè)務(wù)就是...

    Keven 評論0 收藏0

發(fā)表評論

0條評論

heartFollower

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<