Pagination
Paging entities with or without filters.
To simplify pagination there is the pageBy
method operator. This enables the pagination of individual repositories. In addition to the dynamic method operator, there is also the pageAll
method, which works without a filter.
A pageBy
method must always have a pagination
object as the last parameter, where the properties of the pagination are set. The Pagination
object cannot be used in any other method operator.
Example of the dynamic pageBy
method
@Collection("customer_repository")
public interface CustomerRepository extends Repository<Customer, UUID> {
List<Customer> pageByCustomerIdNot(int customerId, Pagination pagination);
}
Example usage of pagination methods
public class Application {
public static void main(Stribng[] args) {
// Creating instances
MongoManager mongoManager = new MongoManager();
CustomerRepository repository = mongoManager.create(CustomerRepository.class);
// Saving some entities
for (int i = 0; i < 15; i++) {
Customer customer = Const.createNewCustomer();
customer.setUniqueId(UUID.randomUUID());
customer.setCustomerId(i);
repository.save(customer);
}
// Creating the pagination properties
int entitiesPerPage = 5;
int currentPage = 2;
// Creating the pagination object
Pagination pagination = Pagination.of(entitiesPerPage).page(currentPage);
// Pagination by pageAll without any filter
List<Customer> allCustomersPage = repository.pageAll(pagination);
// Pagination by dynamic method with filter on customer id
List<Customer> customerWithoutIdZeroPage = repository.pageByCustomerIdNot(0, pagination);
}
}
Last updated