1.SpringDataJpa的本质
Jpa即Java Persistence Api,是Java定义的数据持久化标准规范。例如我们常用的数据持久化中间件Hibernate就是遵循Jpa规范实现的一个持久层框架。通常我们用Hibernate做持久层开发会自己编写一个通用的泛型Dao<Generic>类,然后在模块开发中去继承它就可以实现基本的CRUD操作。SpringDataJpa其实也是这样一种“通用Dao<Generic>”,它的本质是帮助我们简化持久层的开发工作,并不是取代Jpa,所以我们照样必须选择一种实现了Jpa的中间件。
2.SpringDataJpa的主要Api
a.Repository:SpringDataJpa最顶层的接口,内部空实现,其目的只是为了统一所有的Repository类型,让组件扫描时被识别。
b.CrudRepository:是Repository的子接口,新增了Curd功能。
c.PagingAndSortingRepository:是CrudRepository的子接口,新增了分页和排序功能。
d.JpaRepository:是PagingAndSortingRepository的子接口,新增了一些使用功能。例如:批量操作等。
e.JpaSpeciaficationExecutor:负责查询操作的主接口。
f.Specification:SpringDataJpa提供的一个查询规范,要做复杂查询,只需要围绕这个规范来设置查询条件即可。