目录
概述
Spring Data JPA中的repository是一种用于访问数据库的接口,它允许开发人员通过方法来执行常见的数据库操作,而不需要编写具体的SQL语句。Repository接口提供了许多内置的方法,如保存、删除、查询等,可以让开发人员更方便地进行数据库操作。
这篇文章中我们将讨论:
- CrudRepository 提供CRUD操作的函数。
- PagingAndSortingRepository 提供进行分页和排序的的方法。
- JpaRepository 提供与JPA相关的方法,如持久上下文和批量删除记录
由于是继承关系,所有JpaRepository有CrudRepository和PagingAndSortingRepository的所有功能。
举一个简单的例子:
定义实体类Product和一个Repository
@Entity
public class Product {
@Id
private UUID id;
private String name;
}
@Repository
public interface ProductRepository extends JpaRepository<Product, UUID> {
Product findByName(String productName);
}
我们再来分别看看CrudRepository,pagingAndSortingRepository以及JpaRepository。
CrudRepository
我们一起看一下CrudRepository为我们提供了哪些接口
如果要使用CrudRepository,创建一个接口并继承它即可,可以使用上面提到的功能而不用写任何SQL
public interface UserRepository extends CrudRepository<User, UUID> {
}
CrudRepository (Spring Data Core 3.2.2 API)
PagingAndSortingRepository
假设我们要显示按productName升序排序的结果集的第一页,每页不超过五条记录。我们可以使用PageRequest和Sort定义来实现,同时定义分页也是特别的简单。
PagingAndSortingRepository (Spring Data Core 3.2.2 API)
JpaRepository
在使用的时候请注意,有一些方法已经被标记为Deprecated。