Details
-
Bug
-
Status: Closed
-
Resolution: Fixed
-
Master
-
7.2.x, 7.1.x, 7.0.x
-
Committed
-
3
Description
Service Builder finder results are not consistent:
- in case you don't specify pagination parameters sort is done in java side
- in case you specify pagination parameters sort is done in database side
But sorting data in java side doesn't returns same results than database side:
- Database sort (MySQL or Postgresql) ignores accents (áááá = aaaa in sort time)
- Java sort doesn't ignore accents (áááá != aaaa in sort time)
Sorting large amount of data in java side, can also cause some throughput issues. It is better to rely in database side sorting as it is optimized doing that tasks.
Steps to reproduce (Wiki)
- Create WikiPages with following names: ááá, aaaa, AAAAA, ÁÁÁÁÁÁ, BBBBBB
- Query database using the finder with start = -1 and end = -1 (sort is done by ServiceBuilder code)
for (def wikiPage : com.liferay.wiki.service.WikiPageLocalServiceUtil.getWikiPages(-1,-1)) { out.println(wikiPage.getTitle()); }
- Query database using the finder with start = 0 and end = 50 (sort is done in Database)
for (def wikiPage : com.liferay.wiki.service.WikiPageLocalServiceUtil.getWikiPages(0,50)) { out.println(wikiPage.getTitle()); }
- Compare results:
- Expected behavior: both queries returns wikipages in same order
- Wrong behavior: queries returns wikipages in diferent order
- Expected behavior: both queries returns wikipages in same order
Steps to reproduce (Organizations)
- Create Organizations with following names: ááá, aaaa, AAAAA, ÁÁÁÁÁÁ, BBBBBB
- Query database using the finder with start = -1 and end = -1 (sort is done by ServiceBuilder code)
for (def organization : com.liferay.portal.kernel.service.OrganizationLocalServiceUtil.getOrganizations(-1,-1)) { out.println(organization.getName()); }
- Query database using the finder with start = 0 and end = 50 (sort is done in Database)
for (def organization : com.liferay.portal.kernel.service.OrganizationLocalServiceUtil.getOrganizations(0,50)) { out.println(organization.getName()); }
- Compare results:
- Expected behavior: both queries returns Organizations in same order
- Wrong behavior: queries returns Organizations in diferent order
- Expected behavior: both queries returns Organizations in same order
Attachments
Issue Links
- relates
-
LPS-103068 Text of range_comment.ftl file is not correct, "ORDER BY" clause is always added to SQL query
- Closed