Spring Data 之 Repository 接口

Posted 思考与践行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data 之 Repository 接口相关的知识,希望对你有一定的参考价值。

1. 介绍

  • Repository是一个空接口,即是一个标记性接口;
  • 若我们定义的接口继承了Repository,则该接口会被IOC容器识别为一个 Repository Bean;
  • 也可以通过@RepositoryDefinition注解,来替代继承Repository接口;
// 源码:
public interface Repository<T, ID extends Seriallizable>{

}

// 使用继承的方式
public interface PersonRepository extends Repository<Person, Integer>{
    Person getByLastName(String lastName);
}

// 使用注解替代继承
@RepositoryDefinition(domainClass=Person.class, idClass=Integer.class)
public interface PersonRepository{
    Person getByLastName(String lastName);
}

2. Repository接口的子接口

  • CrudRepository:继承Repository,实现了一组CRUD相关的方法;
  • PagingAndSortingRepository:继承CrudRepository,实现了一组分页排序相关的方法;
  • JpaRepository:继承PagingAndSotringRepository,实现一组JPA规范相关的方法;
  • 自定义的XxxRepository:可以继承JpaRepository;
  • JpaSpecificationExecutor:不属于Repository体系,实现一组 JPA Criteria 查询相关的方法;

参考资料:

以上是关于Spring Data 之 Repository 接口的主要内容,如果未能解决你的问题,请参考以下文章

七springboot整合Spring-data-jpa之通用DAO接口与添加自定义方法

spring-data-jpa Repository的基本知识

Spring Data 关于Repository的介绍

Spring Data Redis - 对 Repository 的 @Transactional 支持

Spring Data Rest:为扩展 Revision Repository 的 Repository 公开新端点

Spring Data JPA 提供的各种Repository接口作用