You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Dmitry Pavlov (Jira)" <ji...@apache.org> on 2023/05/19 10:22:00 UTC
[jira] [Updated] (IGNITE-17509) [Extensions] Spring Data pageable request result contains incorrect total value.
[ https://issues.apache.org/jira/browse/IGNITE-17509?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitry Pavlov updated IGNITE-17509:
-----------------------------------
Labels: (was: ise)
> [Extensions] Spring Data pageable request result contains incorrect total value.
> --------------------------------------------------------------------------------
>
> Key: IGNITE-17509
> URL: https://issues.apache.org/jira/browse/IGNITE-17509
> Project: Ignite
> Issue Type: Bug
> Reporter: Mikhail Petrov
> Priority: Major
> Attachments: Reproduces_incorrect_pageable_request_total_value_.patch
>
>
> Assume that Spring Data repository contains the following method
> {code:java}
> public Page<Person> findByFirstNameContaining(String val, Pageable pageable);
> {code}
> In this case the following checks will fail
> {code:java}
> Page<Person> res = repo.findByFirstNameContaining("person", PageRequest.of(2, 100));
> assertEquals(CACHE_SIZE, res.getTotalElements());
> {code}
> where 'repo' is the instance of the previously mention repository.
> The full reproduccer is attached.
> The main reason of the such behaviour is that IgniteRepositoryQuery.java:614
> does not make a separate request of the total rows count and just sets Page 'total' value to 0.
> See also org.springframework.data.domain.PageImpl#PageImpl(java.util.List<T>, org.springframework.data.domain.Pageable, long) logic to understand the how the final result of 'getTotalElements()' is calculated. In bref the result will contain the summ of the offset and cout of values in the last page.
> It seems that as a workaround, you can explicitly request the total number of rows with a separate query.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)