[笔记] Spring Data JPA 的 N+1 Problem (1)

究竟什么是 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 自己独立于规範外的额外功能,但换来的是未来做工具替换时的方便。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章