java map排序 分页_springboot学习笔记5(JPA 实现分页、排序、返回map集合)

在相当长的一段时间里,实现应用程序的数据访问层非常麻烦。必须编写太多的模板代码来执行简单的查询,以及执行分页。Spring  JPA旨在通过减少实际需要的工作量来显著改进数据访问层的实现。作为开发人员,您可以编写存储库接口,包括自定义查找程序方法。下面介绍  springboot集成JPA的使用:

JPA核心接口是Repository,其它所有接口都在此类的基础上进行了扩展。 下面是JPA关系图解图:

33c7e0f63f0f430a488e47423d1944ea.png

熟悉JPA的几个API

CurdRepository提供了增删改产方法,PagingAndSortingRepositroy增加了分页查询方法,JpaRepositroy又增加了实例查询方法。实际应用中可以有选择的继承上面接口即可。上面说过,jpa提供了封装查询数据库模板方法。下面就来一一介绍JPA给我们提供的模板方法:

CurdRepository

接口,提供增删改查基本的功能

@NoRepositoryBean

public interface CrudRepository extends Repository {

S save(S entity);

Iterable save(Iterable entities);

T findOne(ID id);

boolean exists(ID id);

Iterable findAll();

Iterable findAll(Iterable ids);

long count();

void delete(ID id);

void delete(T entity);

void delete(Iterable extends T> entities);

void deleteAll();

}

PagingAndSortingRepositroy

接口 ,分页查询,和排序

@NoRepositoryBean

public interface PagingAndSortingRepository extends CrudRepository {

//分类查询

Iterable findAll(Sort sort);

//分页查询

Page findAll(Pageable pageable);

}

JpaRepositroy

接口,提供实例查询方法

@NoRepositoryBean

public interface JpaRepository

extends PagingAndSortingRepository, QueryByExampleExecutor {

List findAll();

List findAll(Sort sort);

List findAll(Iterable ids);

List save(Iterable entities);

void flush();

S saveAndFlush(S entity);

void deleteInBatch(Iterable entities);

void deleteAllInBatch();

T getOne(ID id);

//实例查询

@Override

List findAll(Example example);

//实例查询,分类排序

@Override

List findAll(Example example, Sort sort);

}

SimpleRepository

实现类,增加了事务注解,进行事务管理,这就不介绍了,讲到自定义封装基类的时候会用到,一般都不会继承使用这个类.

二、使用

自定义一个PersonRepository接口继承上述任何一个接口都可以。不需要在接口上加@Repo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值