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

   前言

    在相当长的一段时间里,实现应用程序的数据访问层非常麻烦。必须编写太多的模板代码来执行简单的查询,以及执行分页。Spring data  JPA旨在通过减少实际需要的工作量来显著改进数据访问层的实现。作为开发人员,您可以编写存储库接口,包括自定义查找程序方法。spring data JPA核心接口是Repository,其它所有接口都在此类的基础上进行了扩展。 下面是JPA关系图解图:


 熟悉JPA的几个API

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

CurdRepository 

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

@NoRepositoryBean
public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {
	
	<S extends T> S save(S entity);
	
	<S extends T> Iterable<S> save(Iterable<S> entities);

	T findOne(ID id);
	
	boolean exists(ID id);
	
	Iterable<T> findAll();

	Iterable<T> findAll(Iterable<ID> ids);
	
	long count();
	
	void delete(ID id);

	void delete(T entity);

	void delete(Iterable<? extends T> entities);

	void deleteAll();
}

PagingAndSortingRepositroy

  接口 ,分页查询,和排序:

@NoRepositoryBean
public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> {
       //分类查询
	Iterable<T> findAll(Sort sort);
       //分页查询
	Page<T> findAll(Pageable pageable);
}

JpaRepositroy

      接口,提供实例查询方法

@NoRepositoryBean
public interface JpaRepository<T, ID extends Serializable>
		extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {

	
	<S extends T> S saveAndFlush(S entity);

	void deleteInBatch(Iterable<T> entities);
	
	void deleteAllInBatch();

	T getOne(ID id);
         
      //实例查询
	@Override
	<S extends T> List<S> findAll(Example<S> example);

      //实例查询,分类排序
	@Override
	<S extends T> List<S> findAll(Example<S> example, Sort sort);
}

SimpleRepository

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

使用 

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值