Spring Data 之 Repository 接口

本小妞迷上赌 提交于 2020-03-27 09:08:16

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 查询相关的方法;

参考资料:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!