標籤:eid 別人 extends cat ext 分頁 repos code 查詢
在用spring-data-mongodb架構開發的過程中,需要實現分頁查詢,就百度了下,沒找到滿意的又google了下,找到了思路.
在spring-data-mongodb 官方文檔中,建議你使用PagingAndSortingRepository 來實現分頁,但是我是真的不喜歡這個設計啊!!
用方法名來映射查詢語句,架構會自動產生執行代碼,還為此定義了一套文法,舉個例子:
public interface UserRepository extends MongoRepository<User, String>, QueryDslPredicateExecutor<User> {
@Query("{ ‘name‘ : ?0 }")
List<User> findUsersByName(String name);
@Query("{ ‘age‘ : { $gt: ?0, $lt: ?1 } }")
List<User> findUsersByAgeBetween(int ageGT, int ageLT);
List<User> findByName(String name);
List<User> findByNameLikeOrderByAgeAsc(String name);
List<User> findByAgeBetween(int ageGT, int ageLT);
@Query(value = "{}", fields = "{name : 1}")
List<User> findNameAndId();
@Query(value = "{}", fields = "{_id : 0}")
List<User> findNameAndAgeExcludeId();
}
這個介面類只定義了介面,並不需要實現,因為SDM架構(spring-data-mongodb簡稱,以下都使用簡稱)會幫你產生代碼..
findByAgeBetween(int ageGT, int ageLT);-> 就是where ageGT <age and age <ageLT;
剛開始可能感覺很簡單,但是一旦欄位多了查詢條件複雜了! 你根本不知道自己在寫什麼!別人看你的代碼一長串方法名,也是直接懵逼的..
而 查出來的許多分頁查詢也是直接使用的PagingAndSortingRepository 這個介面,自動產生...非常不喜歡...就去查怎麼使用MongoTemplate實現...
先下班....放假回來補上..哈哈
Mongodb系列- 使用spring-data-mongodb實現分頁查詢