日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JPA –我应该成为懒惰的极端主义者吗?

發(fā)布時間:2023/12/3 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JPA –我应该成为懒惰的极端主义者吗? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當您與開發(fā)人員討論將對象映射到關(guān)系數(shù)據(jù)庫時,他們經(jīng)常抱怨JPA性能差,JPA提供程序的行為不可預測等。通常,在對話的某些時候,您會聽到: “讓我們完全放棄這項技術(shù),我們在上個月的會議上看到了更好的東西。 我們將在我們的項目中使用它而不是JPA,并從此以后快樂地開發(fā)它們。” - 聽起來很熟悉? 學習新技術(shù)沒錯,事實上,您應該不斷地做下去,以提高您的技能和知識,但是當您遇到其中一種問題時,您會選擇一條通向另一種技術(shù)的簡單途徑還是會問自己: “我是嗎? 以正確的方式使用它?” 讓我們看一下JPA用法示例。 假設我們有簡單的數(shù)據(jù)庫,映射到實體:

而且我們必須顯示所有員工姓名,無論其雇主(和部門)如何。 沒有比這容易的事了-簡單的JPQL查詢就能做到:

select employee from Employee employee order by employee.name

許多開發(fā)人員在這一點上完成工作,并與Friends一起慶祝他們生活中另一個成功的JPQL查詢,但是我們當中有些人感到這種奇怪的感覺,即有些令人毛骨悚然的東西潛伏在光亮的表面之下。 JPA提供程序(例如Hibernate)產(chǎn)生的SQL查詢將揭示事實:

select [...] from EMPLOYEE employee0_ order by employee0_.EMPLOYEE_NAMENothing special, so far , but here comes the naked truth:select [...] from DEPARTMENT department0_ left outer join EMPLOYER employer1_ on department0_.EMPLOYER_ID=employer1_.EMPLOYER_ID where department0_.DEPARTMENT_ID=?select [...] from EMPLOYER employer0_ where employer0_.EMPLOYER_ID=?select [...] from DEPARTMENT department0_ left outer join EMPLOYER employer1_ on department0_.EMPLOYER_ID=employer1_.EMPLOYER_ID where department0_.DEPARTMENT_ID=?select [...] from DEPARTMENT department0_ left outer join EMPLOYER employer1_ on department0_.EMPLOYER_ID=employer1_.EMPLOYER_ID where department0_.DEPARTMENT_ID=?select [...] from DEPARTMENT department0_ left outer join EMPLOYER employer1_ on department0_.EMPLOYER_ID=employer1_.EMPLOYER_ID where department0_.DEPARTMENT_ID=?

有沒有搞錯?! 這些查詢是什么? –好吧,原因在于@ManyToOne批注的默認訪 存屬性值,即EAGER 。 我的數(shù)據(jù)庫包含2個雇主,其中一個擁有4個部門,而第二個則沒有。 加載Employee時,默認情況下,JPA提供程序會加載所有EAGER關(guān)聯(lián)(在我們的示例中是Department和Employer),因此我們還有其他查詢。 如上所示,JPA提供者足夠聰明,可以在可能的情況下立即加載雇主和部門。

您剛剛發(fā)現(xiàn)了神奇的JPQL查詢,可一次獲取所有數(shù)據(jù)庫內(nèi)容 。 這種情況會讓您想起過去的事情嗎? 我們對于它可以做些什么呢? –我的朋友,您所需要的只是懶惰–除非真正需要,否則不要使用EAGER (請記住, @ ManyToOne和@OneToOne注釋默認使用它)。

此時您可能稱我為瘋子或懶惰極端主義者,并問:您是否遇到過LazyInitializationException ,兄弟! 您是否聽說過延遲加載問題的所有麻煩!? 性能下降等。。。我當然這樣做了,但是您不認為如果我們在JPA方面遇到麻煩,也許我們會以錯誤的方式使用它! 我們通常在Web應用程序中所做的是在UI上呈現(xiàn)或編輯一些數(shù)據(jù),并且通常只是特定實體屬性的一小部分。 要做到這一點,需要從數(shù)據(jù)庫中獲取實體樹–我們不知不覺中就問實體管理器:給我所有員工,按名稱排序,以及所有相關(guān)實體,然后抱怨性能下降! 我們不在乎從數(shù)據(jù)庫中獲取什么,因為實體管理器將為我們完成驢工作。 我們得到LazyInitializationException ,那么! 我們將以“視圖”模式使用“打開實體管理器”,并消除此愚蠢的異常!

休息一下! 你不認為這是一個死胡同嗎? –現(xiàn)在該改變一些東西了。 您可以在項目中使用復雜的方法,例如CQRS ,以及JPA中已經(jīng)存在的可能性,這些方法可以幫助您更改本文中我描述的不良方式。

甜點的幾個鏈接:

  • CQRS信息
  • 馬丁·福勒(Martin Fowler)關(guān)于CQRS的文章

參考: JPA –我應該成為懶惰的極端主義者嗎? 來自我們的JCG合作伙伴 Michal Jastak,來自Warlock's Thoughts博客。

翻譯自: https://www.javacodegeeks.com/2013/05/jpa-should-i-become-a-laziness-extremist.html

總結(jié)

以上是生活随笔為你收集整理的JPA –我应该成为懒惰的极端主义者吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产在线观看网站 | 久久人久久| 玩弄白嫩少妇xxxxx性 | 色哟哟无码精品一区二区三区 | 国产乱码一区二区三区在线观看 | www.中文字幕在线观看 | 国产伦精品一区二区三区视频网站 | 久久久亚洲欧美 | 国产真人无码作爱视频免费 | 99成人 | av先锋在线| 日本www高清视频 | 激情777 | 免费中文字幕在线观看 | 国产美女精品久久 | 小宵虎南在线观看 | 丁香花完整视频在线观看 | 影音先锋中文字幕在线视频 | 亚洲4区 | 成人h动漫精品一区二区下载 | 手机在线看片你懂的 | 在线不卡中文字幕 | 中日韩精品一区二区三区 | 五月婷视频| 好男人www社区 | 亚洲精品久久久久久久久 | 成人日皮视频 | 国产成人a亚洲精v品无码 | 欧美美女性视频 | 精品国产一区二区三区日日嗨 | 国产呻吟av | 日韩一区欧美 | 精品国产一区二区三区av性色 | 一区二区三区高清 | 国产无码精品久久久 | 久久手机视频 | 91美女片黄在线观看 | 日日夜精品 | 黄视频网站在线观看 | www.亚洲一区二区 | 91九色丨porny丨国产jk | 亚洲尹人 | 国产成人91 | 青青91| 亚洲男女一区二区三区 | 91久久久久久久久久久久久 | m3u8成人免费视频 | 偷拍女澡堂一区二区三区 | 九九在线精品视频 | 少妇视频在线观看 | 免费婷婷| 亚洲操 | 国产一页| 国产乱码精品一区二区三区精东 | 成人xx视频 | 尤物视频免费观看 | 国产片网站 | 一区二区三区高清在线 | 日产电影一区二区三区 | 日韩成人av网址 | 91沈先生在线 | 日韩欧美亚洲在线 | 日韩欧美中文字幕精品 | 国产一区观看 | 欧美性猛交ⅹxxx乱大交3 | 粉嫩av一区二区三区免费观看 | 国产乱码精品一品二品 | 欧美xxxxxhd| 综合av一区 | av不卡在线观看 | 亚洲a精品 | 精品人妻伦一二三区久 | 你懂的在线免费观看 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 91精品国产麻豆 | av免费影院 | 91丨九色 | 久草福利资源站 | 中文字幕人妻一区二区三区在线视频 | 女性裸体无遮挡胸 | 波多野结衣一区二区三区高清av | 欧洲视频一区二区三区 | 91天堂在线观看 | 性xxxx| 欧美成人免费在线 | 欧美嫩草影院 | 光棍影院手机版在线观看免费 | 亚洲视频久久 | 亚洲电影一区二区三区 | 国产精品二区在线观看 | 91久久精品一区二区 | xx视频在线观看 | 四色网址| 俺去操 | ⅹxxxxhd亚洲日本hd老师 | 国产av无码专区亚洲av | 伊人影院在线视频 | 亚洲国产精品狼友在线观看 | free欧美性69护士呻吟 |