|
|
|
@ -140,6 +140,7 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository { |
|
|
|
selectPart.append(" a.originator_id as entity_id "); |
|
|
|
} |
|
|
|
EntityDataSortOrder sortOrder = pageLink.getSortOrder(); |
|
|
|
String textSearchQuery = buildTextSearchQuery(ctx, query.getAlarmFields(), pageLink.getTextSearch()); |
|
|
|
if (sortOrder != null && sortOrder.getKey().getType().equals(EntityKeyType.ALARM_FIELD)) { |
|
|
|
String sortOrderKey = sortOrder.getKey().getKey(); |
|
|
|
sortPart.append(alarmFieldColumnMap.getOrDefault(sortOrderKey, sortOrderKey)) |
|
|
|
@ -166,7 +167,11 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository { |
|
|
|
} |
|
|
|
joinPart.append(" as e(id, priority)) e "); |
|
|
|
if (pageLink.isSearchPropagatedAlarms()) { |
|
|
|
joinPart.append("on ea.entity_id = e.id"); |
|
|
|
if (textSearchQuery.isEmpty()) { |
|
|
|
joinPart.append("on ea.entity_id = e.id"); |
|
|
|
} else { |
|
|
|
joinPart.append("on a.entity_id = e.id"); |
|
|
|
} |
|
|
|
} else { |
|
|
|
joinPart.append("on a.originator_id = e.id"); |
|
|
|
} |
|
|
|
@ -230,13 +235,11 @@ public class DefaultAlarmQueryRepository implements AlarmQueryRepository { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
String textSearchQuery = buildTextSearchQuery(ctx, query.getAlarmFields(), pageLink.getTextSearch()); |
|
|
|
String mainQuery; |
|
|
|
if (!textSearchQuery.isEmpty()) { |
|
|
|
mainQuery = selectPart.toString() + fromPart.toString() + wherePart.toString(); |
|
|
|
mainQuery = String.format("select * from (%s) a %s WHERE %s", mainQuery, joinPart, textSearchQuery); |
|
|
|
String mainQuery = String.format("%s%s", selectPart, fromPart); |
|
|
|
if (textSearchQuery.isEmpty()) { |
|
|
|
mainQuery = String.format("%s%s%s", mainQuery, joinPart, wherePart); |
|
|
|
} else { |
|
|
|
mainQuery = selectPart.toString() + fromPart.toString() + joinPart.toString() + wherePart.toString(); |
|
|
|
mainQuery = String.format("select * from (%s%s) a %s WHERE %s", mainQuery, wherePart, joinPart, textSearchQuery); |
|
|
|
} |
|
|
|
String countQuery = String.format("select count(*) from (%s) result", mainQuery); |
|
|
|
long queryTs = System.currentTimeMillis(); |
|
|
|
|