(将对Springdata JPA的API 第三章之后进行解释)
一 . Core concepts(核心概念)
1.springdata中的中心接口是——Repository。这个接口没有什么重要的功能(原句称没什么惊喜的一个接口)。主要的作用就是标记和管理。其他的接口都是此接口的子类。
Example 1:
1 public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> { 2 <S extends T> S save(S var1);//保存给定的实体 3 4 <S extends T> Iterable<S> save(Iterable<S> var1);//保存指定的实体集合 5 6 T findOne(ID var1);查询指定id的实体 7 8 boolean exists(ID var1);//判断一个实体是否与给定的ID存在 9 10 Iterable<T> findAll();//返回所有实体 11 12 Iterable<T> findAll(Iterable<ID> var1);//查询指定的实体集合 13 14 long count();//该实体的总数 15 16 void delete(ID var1);//根据id删除指定实体 17 18 void delete(T var1);//删除指定实体 19 20 void delete(Iterable<? extends T> var1);//删除指定的实体集合 21 22 void deleteAll();//删除全部 23 }
除此还提供了一些技术相关的接口,比如 JpaRepository,MongoRepository这两个接口继承了CrudRepository。
2.CrudRepository
1)CrudRepository有个子类PagingAndSortingRepository,增加了一些方法来实现分页。
Example 2:
1 public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> { 2 Iterable<T> findAll(Sort var1); 3 4 Page<T> findAll(Pageable var1); 5 }
Example 3:Sort中创建的是自定义的排序方式,PageRequest中创建的是自定义分页的方式(注意:分页索引是从0开始,所以想要查询第一页二十条数据时,应插入(0,20))。
dao层:
Controller(直接调用,没通过Service):
2)除了查询,计数和删除查询都可以使用
Example 4: