repository是指数据仓库的意思。Repository居于业务层和数据层之间,将两者隔离开来,在它的内部封装了数据查询和存储的逻辑,降低层级之间的耦合,更换、升级ORM引擎并不会影响原有的业务逻辑代码。

repository与dao的区别

DAO是MVC中的Model层,全称是Data Access Object,负责数据库的存取工作

Repository蕴含着面向对象即OO的概念,一个数据仓库角色,负责所有对象的持久化管理。

DAO则仍然停留在数据操作的层面上。Repository是相对对象而言,DAO则是相对数据库而言。

 

常用的Repository 有CrudRepository,PagingAndSortingRepository 和JpaRepository

spring boot 系列之Repository

CrudRepository

方法:

long count();   
boolean exists(Integer arg0);  
<S extends StudentPO> S save(S arg0);  
<S extends StudentPO> Iterable<S> save(Iterable<S> arg0);  
void delete(Integer arg0);  
void delete(Iterable<? extends StudentPO> arg0);  
void delete(StudentPO arg0);  
void deleteAll();  
StudentPO findOne(Integer arg0);  
Iterable<StudentPO> findAll();  
Iterable<StudentPO> findAll(Iterable<Integer> arg0);

注意 CrudRepository 中的save方法是相当于insert+update ,它会先判断记录是否存在,如果存在则更新,不存在则插入记录。

PagingAndSortingRepository

方法:

Iterable<T> findAll(Sort sort); //排序    

Page<T> findAll(Pageable pageable); //分页查询(含排序功能)

构造pageable对象即可分页

 Pageable pageable = new PageRequest(page, size);

构造Sort 对象即可排序

 Sort sort = new Sort(Sort.Direction.DESC, "name");

传入sort进行构造pageable对象即可排序后分页

Pageable pageable = new PageRequest(page, size, sort);

JpaRepository

方法:

List<T> findAll(); //查找所有实体

List<T> findAll(Sort sort); //排序、查找所有实体

List<T> save(Iterable<? extends T> entities);//保存集合

void flush();//执行缓存与数据库同步

T saveAndFlush(T entity);//强制执行持久化

void deleteInBatch(Iterable<T> entities);//删除一个实体集合

JpaRepository在PagingAndSorting的基础上,扩展以下功能:

  1. 查询列表
  2. 批量删除
  3. 强制同步
  4. Example查询

JPA规范

JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口。JPA吸取了目前Java持久化技术的优点,旨在规范、简化Java对象的持久化工作。使用JPA持久化对象,并不是依赖于某一个ORM框架。

转载spring data jpa reference

spring boot 系列之Repository

spring boot 系列之Repository

相关文章:

  • 2022-12-23
  • 2021-10-17
  • 2021-09-27
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
  • 2021-07-04
  • 2021-11-28
猜你喜欢
  • 2022-12-23
  • 2021-11-22
  • 2021-06-17
  • 2022-01-22
  • 2018-04-13
  • 2021-09-03
  • 2021-10-25
相关资源
相似解决方案