Som du regnede ud, understøtter MongoTemplate ikke den komplette sideabstraktion. Som KneeLess sagde, kan du bruge @Query
-Annotation for at udføre nogle tilpassede forespørgsler.
Hvis dette ikke er nok for dig, kan du bruge Spring Repository PageableExecutionUtils
i kombination med din MongoTemplate.
For eksempel sådan her:
@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));
}
Spring Repositories gør det samme. Som du kan se her , udløser de også to forespørgsler.