1. 程式人生 > >SpringdataJpa的官方API學習

SpringdataJpa的官方API學習

mon inter req pre 概念 mic spring 總數 tin

(將對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:

SpringdataJpa的官方API學習