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

参考资料:

原文地址:https://www.cnblogs.com/linkworld/p/9164331.html

时间: 2024-11-13 06:54:11

Spring Data 之 Repository 接口的相关文章

818 spring data jpa 一些接口与方法

spring jpa 主要分为三个类:org.springframework.data.jpa.repository.JpaRepository<T, ID>org.springframework.data.jpa.repository.JpaSpecificationExecutor<T>org.springframework.data.repository.CrudRepository<T, ID>这三个类的实现类都是org.springframework.data

Spring Data 关于Repository的介绍(四)

Repository类的定义: public interface Repository<T, ID extends Serializable> { } 1)Repository是一个空接口,标记接口没有包含方法声明的接口 2)如果我们定义的接口EmployeeRepository extends Repository 如果我们自己的接口没有extends Repository,运行时会报错:org.springframework.beans.factory.NoSuchBeanDefiniti

Spring Data JPA 入门Demo

什么是JPA呢? 其实JPA可以说是一种规范,是java5.0之后提出来的用于持久化的一套规范:它不是任何一种ORM框架,在我看来,是现有ORM框架在这个规范下去实现持久层. 它的出现是为了简化现有的持久化框架,例如hibernate.Toplink等,让我们的程序再不用去使用这些现有的产品所提供的API,也就是说,我们只需遵循这套规范,用什么框架实现数据库操作就不会有太高的耦合度,JPA可以为我们降低耦合,并且简化我们的ORM操作. JPA主要提供3方面的技术: 1.ORM映射元数据,通常对应

Spring Data JPA进阶——Specifications和Querydsl

Spring Data JPA进阶--Specifications和Querydsl 本篇介绍一下Spring Data JPA中能为数据访问程序的开发带来更多便利的特性,我们知道,Spring Data repository的配置很简单,一个典型的repository像下面这样: public interface CustomerRepository extends JpaRepository<Customer, Long> { Customer findByEmailAddress(Str

Spring Data学习笔记-查询方法

Spring Data支持类似Hibernate的查询语句,也可以写原生SQL语句,下面记录典型的例子. /**  * 1. Repository 是一个空接口. 即是一个标记接口  * 2. 若我们定义的接口继承了 Repository, 则该接口会被 IOC 容器识别为一个 Repository Bean.  * 纳入到 IOC 容器中. 进而可以在该接口中定义满足一定规范的方法.   *   * 3. 实际上, 也可以通过 @RepositoryDefinition 注解来替代继承 Rep

SpringMVC+Spring Data JPA+Shiro+EasyUI简单权限管理系统

SpringMVC+Spring Data JPA+Shiro+EasyUI简单权限管理系统 一直想做一个管理系统,希望它简洁,能做一个demo使用.以后在研究学习的时候,可以在此基础上增加代码.我觉得权限管理系统很值得做,因为涉及关系数据库模式的设计,能学到很多东西.万事开头难,先做个简单的,以后再慢慢完善的.任何事情关键是要做,不能停留在想. 前端 由于之前没有多少前端编程经验,所以做起前端比较吃力.之前前端使用Bootstrap,发现需要自己编写很多前端代码,虽然花费了很多时间,但是页面做

Spring Data JPA初使用

我们都知道Spring是一个非常优秀的JavaEE整合框架,它尽可能的减少我们开发的工作量和难度. 在持久层的业务逻辑方面,Spring开源组织又给我们带来了同样优秀的Spring Data JPA. 通常我们写持久层,都是先写一个接口,再写接口对应的实现类,在实现类中进行持久层的业务逻辑处理. 而现在,Spring Data JPA帮助我们自动完成了持久层的业务逻辑处理,我们要做的,仅仅是声明一个持久层接口. 1.下载开发所需要的发布包. 1)spring-framework-3.1.2.RE

Spring Data JPA初使用(转载)

我们都知道Spring是一个非常优秀的JavaEE整合框架,它尽可能的减少我们开发的工作量和难度. 在持久层的业务逻辑方面,Spring开源组织又给我们带来了同样优秀的Spring Data JPA. 通常我们写持久层,都是先写一个接口,再写接口对应的实现类,在实现类中进行持久层的业务逻辑处理. 而现在,Spring Data JPA帮助我们自动完成了持久层的业务逻辑处理,我们要做的,仅仅是声明一个持久层接口. 1.下载开发所需要的发布包. 1)spring-framework-3.1.2.RE

Spring Data JPA、 MyBatis与Hibernate简单对比

整体参考: https://blog.csdn.net/xihuanyuye/article/details/81201441 详细参考: https://blog.csdn.net/qq897958555/article/details/53208002 1.Spring Data JPA与Hibernate Spring Data JPA是Spring Data的子模块.使用Spring Data,使得基于“repositories”概念的JPA实现更简单和容易.Spring Data JP