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:接口主要针对分页和排序
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:接口中主要封装了简单增删改查
注:save(Iterable<S> entities) :添加集合封装的独享,public interface List<E> extends Collection<E> ,public interface Collection<E> extends Iterable<E>,接收类型为多态方式。Iterable是在jdk8中才有的。
其他方法都很明了不需要再过多解释。