一 首先熟悉几种jpa中的接口Repository,CrudRepository,PagingAndSortingRepository,JpaRepository,JpaSpecificationExecutor
Repository是一个空接口:
1 2 3 4 |
@Indexed public interface Repository<T, ID> {
} |
CrudRepository继承Repository:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
@NoRepositoryBean public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> {
<S extends T> S save(S var1); //保存 <S extends T> Iterable<S> save(Iterable<S> var1); //批量保存 T findOne(ID var1); //根据id 查询一个对象。返回对象本身,当对象不存在时,返回null boolean exists(ID var1) //根据id 判断对象是否存在 Iterable<T> findAll();; //查询所有的对象 Iterable<T> findAllById(Iterable<ID> var1); //根据id列表查询所有的对象 long count(); //计算对象的总个数 void delete(ID var1); //根据id 删除 void delete(T var1); //删除一个对象 void delete(Iterable<? extends T> var1); //批量删除,集合对象(后台执行时,一条一条删除) void deleteAll(); //删除所有(后台执行时,一条一条删除) } |
PagingAndSortingRepository继承CrudRepository,另提供了两个方法,实现了分页和排序的功能:
1 2 3 4 5 |
@NoRepositoryBean public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> {
Iterable<T> findAll(Sort var1); // 仅排序 Page<T> findAll(Pageable var1); // 分页和排序 } |
JpaRepository继承PagingAndSortingRepository:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
@NoRepositoryBean public interface JpaRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
List<T> findAll(); //查询所有对象,返回List List<T> findAll(Sort var1); //查询所有对象,并排序,返回List Li
|