From b36f851349b20956872b60c320b18ccdde0cc04b Mon Sep 17 00:00:00 2001 From: Swoq Date: Tue, 26 Oct 2021 15:03:01 +0300 Subject: [PATCH 1/2] Fix default ordering in Entity Query Repository --- .../server/dao/sql/query/DefaultEntityQueryRepository.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java index ac78e80685..eed0c617c0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java @@ -442,10 +442,10 @@ public class DefaultEntityQueryRepository implements EntityQueryRepository { EntityKeyMapping sortOrderMapping = sortOrderMappingOpt.get(); String direction = sortOrder.getDirection() == EntityDataSortOrder.Direction.ASC ? "asc" : "desc"; if (sortOrderMapping.getEntityKey().getType() == EntityKeyType.ENTITY_FIELD) { - dataQuery = String.format("%s order by %s %s", dataQuery, sortOrderMapping.getValueAlias(), direction); + dataQuery = String.format("%s order by %s %s, id %s", dataQuery, sortOrderMapping.getValueAlias(), direction, direction); } else { - dataQuery = String.format("%s order by %s %s, %s %s", dataQuery, - sortOrderMapping.getSortOrderNumAlias(), direction, sortOrderMapping.getSortOrderStrAlias(), direction); + dataQuery = String.format("%s order by %s %s, %s %s, id %s", dataQuery, + sortOrderMapping.getSortOrderNumAlias(), direction, sortOrderMapping.getSortOrderStrAlias(), direction, direction); } } } From 81f2d122a10ed545683507764626ff6d2899e8c1 Mon Sep 17 00:00:00 2001 From: Swoq Date: Tue, 26 Oct 2021 15:38:06 +0300 Subject: [PATCH 2/2] precise reference to id --- .../server/dao/sql/query/DefaultEntityQueryRepository.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java index eed0c617c0..4b331f78f2 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/query/DefaultEntityQueryRepository.java @@ -389,6 +389,7 @@ public class DefaultEntityQueryRepository implements EntityQueryRepository { } else { entityTypeStr = "'" + entityType.name() + "'"; } + if (!StringUtils.isEmpty(entityFieldsSelection)) { entityFieldsSelection = String.format("e.id id, %s entity_type, %s", entityTypeStr, entityFieldsSelection); } else { @@ -442,9 +443,9 @@ public class DefaultEntityQueryRepository implements EntityQueryRepository { EntityKeyMapping sortOrderMapping = sortOrderMappingOpt.get(); String direction = sortOrder.getDirection() == EntityDataSortOrder.Direction.ASC ? "asc" : "desc"; if (sortOrderMapping.getEntityKey().getType() == EntityKeyType.ENTITY_FIELD) { - dataQuery = String.format("%s order by %s %s, id %s", dataQuery, sortOrderMapping.getValueAlias(), direction, direction); + dataQuery = String.format("%s order by %s %s, result.id %s", dataQuery, sortOrderMapping.getValueAlias(), direction, direction); } else { - dataQuery = String.format("%s order by %s %s, %s %s, id %s", dataQuery, + dataQuery = String.format("%s order by %s %s, %s %s, result.id %s", dataQuery, sortOrderMapping.getSortOrderNumAlias(), direction, sortOrderMapping.getSortOrderStrAlias(), direction, direction); } }