Spring-Data-JPA 中的JpaRepository相关介绍

自定义Repository继承了JpaRepository<实体类,主键类型>,如public interface UserDao extends JpaRepository<User,Integer>,

源码分析:

public interface JpaRepository<T, ID extends Serializable>

extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

PagingAndSortingRepository:接口主要针对分页和排序

Spring-Data-JPA 中的JpaRepository相关介绍

1.Page<T> findAll(Pageable pageable):分页查询

Pageable

  -------AbstractPageRequest

        -----PageRequest

分页查询实例代码:

PageRequest pageRequest = null;
if (page== null) {
pageRequest = new PageRequest(0, 4);
} else {
pageRequest = new PageRequest((page-1), 4);
}
     

Page<User> findAll = userDao.findAll(pageRequest);

2.List<T> findAll(Sort sort):不分页排序查询

示例代码:

/**
* 不分页排序查询
* @return
*/
public List<User> queryForSort(){
Order idOrder = new Order(Direction.DESC, "id"); 
/*List<Order> orders =new ArrayList<Order>();
orders.add(idOrder);*/
return userDao.findAll(new Sort(idOrder));
}

-----------------------------------------------------------------------------------------------------------------------------------------------------------

public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID>

CrudRepository:接口中主要封装了简单增删改查

Spring-Data-JPA 中的JpaRepository相关介绍

注:save(Iterable<S> entities) :添加集合封装的独享,public interface List<E> extends Collection<E> ,public interface Collection<E> extends Iterable<E>,接收类型为多态方式。Iterable是在jdk8中才有的。

其他方法都很明了不需要再过多解释。