iT邦幫忙

0

[筆記] Spring Data JPA 的 N+1 Problem (1)

  • 分享至 

  • xImage
  •  

究竟什麼是 ORM, JPA, Spring Data JPA, Hibernate

首先從常常讓人一頭霧水的名詞開始,ORM, JPA, Spring Data JPA, Hibernate

  • ORM: Object Relational Mapping,這是抽象概念,沒法直接使用,上述名詞通通都涵蓋在這之中
  • Hibernate: Java 目前最大宗的 ORM framework,裡頭包含了部分滿足 JPA 規範的方法,額外也有自己添加一些不在規範內的強大功能。
  • JPA: 全名是 Java Persistence API,這只一個規範(它不包含任何實作方法),Hibernate正是 JPA Provider 其中之一,當今天我們使用這些遵守 JPA 規範的 JAVA ORM Framework,未來就可以更容易地在這些 JPA Implementation 中自在地切換 (Hibernate <==> EclipseLink)
  • Spring Data JPA:是在 JPA 之上的一個插件,將這些介面又封裝的更容易使用。

結論

開始談論 N+1 Problem 之前,必須要知道的就是,如果把 Hibernate 或是 EclipseLink從專案中移除,不管你用的是 JPA 還是 Spring Data JPA,所有的查詢功能都會馬上失效。
如果只透過 JPA 規範中所提及的方法,就無法發揮這些 ORM Framework 自己獨立於規範外的額外功能,但換來的是未來做工具替換時的方便。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言