Seperti yang Anda ketahui, MongoTemplate tidak mendukung abstraksi halaman lengkap. Seperti yang dikatakan KneeLess, Anda dapat menggunakan @Query
-Anotasi untuk melakukan beberapa kueri khusus.
Jika ini tidak cukup untuk Anda, dapat menggunakan Repositori Musim Semi PageableExecutionUtils
dalam kombinasi dengan MongoTemplate Anda.
Contohnya seperti ini:
@Override
public Page<XXX> findSophisticatedXXX(/* params, ... */ @NotNull Pageable pageable) {
Query query = query(
where("...")
// ... sophisticated query ...
).with(pageable);
List<XXX> list = mongoOperations.find(query, XXX.class);
return PageableExecutionUtils.getPage(list, pageable,
() -> mongoOperations.count((Query.of(query).limit(-1).skip(-1), XXX.class));
}
Repositori Musim Semi melakukan hal yang sama. Seperti yang Anda lihat di sini , mereka juga mengaktifkan dua kueri.