Spring Data JPA(Java Persistence API),是Spring框架的主要构建块之一。如果您想使用持久数据,它也是一个强大的工具。
我经常看到实际使用它的开发人员看不到全局,他们错过了它的一些最有用的能力。因此,我想向您展示处理应用程序中持久数据的最有意义的工具。
一个简单的CRUD存储库可以有多长时间?
在我们进入之前,我想分享一下这个框架能够做什么。我们看到以下代码片段,
图片来自于网络
该图显示了使用标准JPA实体模型处理从单个数据库表中插入,更新,删除和读取数据所需的代码量。
这些也称为标准CRUD操作。CRUD是Create,Read,Update和Delete的首字母缩写。我们还在此类中实现了一些自定义查询,这些查询使用此JPA实体执行各种数据过滤。总而言之,这是一个非常标准的代码,用于在Java中使用JPA构建持久层。
Spring Data JPA有多长?
通过在项目中包含和实现Spring Data JPA,您可以删除所有代码并将其替换为以下代码:
图片来自于网络
我们从近50行代码下降到5行代码而不会丢失任何功能,这应该让您了解这个框架有多强大。
什么是Spring Data JPA?
在我们了解了这个库可以实现的目标之后,让我们来谈谈它是如何工作的以及它如何连接到Java Spring生态系统。
正如我之前提到的,它被认为是Spring工具套件中的核心项目之一。
图片来自于网络
Spring Data JPA还构建并增强了JPA,后者代表Java Persistence API。
图片来自于网络
Spring Data JPA功能
大多数应用程序都有某种数据存储,随着应用程序复杂性和功能集的增长,您会发现数据访问层和持久层代码也会增长。
简化数据访问层
Spring Data JPA的核心目标之一是减少代码并简化数据访问层,同时仍保留丰富且功能齐全的功能集。
智能Spring存储库接口
为了实现这一点,Spring DATA JPA允许您构建智能的Spring Repository构造型接口。这些存储库是Java接口,允许您定义数据访问协议。然后,Spring Data JPA框架检查并自动为您构建接口实现。
查询DSL
要生成Repository接口的实现,它需要一个Query DSL,DSL是域特定语言的首字母缩写。
查询域特定语言允许您创建Java接口方法,这些方法利用某些关键字和JPA实体属性来执行所需的工作。
审计,分页,处理本机SQL查询
Spring Data JPA还提供了一些很好的附加功能,例如审计,分页和本机SQL查询的处理。
如果需要,就会离开
如果您需要执行Spring Data提供程序无法执行的操作,那么也可以轻松地完成并编写自己的实现代码。
图片来自于网络
摘要
在本文中,我们了解了Spring Data JPA的功能,展示了一个示例,说明如何通过提供相同的功能来大幅减少标准JPA类的代码量。欢迎广大朋友批评和指正,也欢迎点赞和转发。