Browse Source

Add keyFiltersOperation field to EntityCountQuery and propagate through constructors

- Add keyFiltersOperation field with null-safe getKeyFiltersOperationOrDefault()
- Add 3-arg constructor to EntityCountQuery for explicit operation
- Add 6-arg constructors to AbstractDataQuery and EntityDataQuery
- Add 7-arg constructor to AlarmDataQuery
- Update next() methods to propagate keyFiltersOperation
- Update buildEntityDataQuery methods to pass operation from alarm queries
pull/15394/head
Viacheslav Klimov 6 months ago
parent
commit
c9e0839b52
Failed to extract signature
  1. 4
      application/src/main/java/org/thingsboard/server/service/query/DefaultEntityQueryService.java
  2. 12
      common/data/src/main/java/org/thingsboard/server/common/data/query/AbstractDataQuery.java
  3. 7
      common/data/src/main/java/org/thingsboard/server/common/data/query/AlarmDataQuery.java
  4. 13
      common/data/src/main/java/org/thingsboard/server/common/data/query/EntityCountQuery.java
  5. 6
      common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataQuery.java

4
application/src/main/java/org/thingsboard/server/service/query/DefaultEntityQueryService.java

@ -221,7 +221,7 @@ public class DefaultEntityQueryService implements EntityQueryService {
private EntityDataQuery buildEntityDataQuery(AlarmCountQuery query) {
EntityDataPageLink edpl = new EntityDataPageLink(maxEntitiesPerAlarmSubscription, 0, null,
new EntityDataSortOrder(new EntityKey(EntityKeyType.ENTITY_FIELD, EntityKeyMapping.CREATED_TIME)));
return new EntityDataQuery(query.getEntityFilter(), edpl, null, null, query.getKeyFilters());
return new EntityDataQuery(query.getEntityFilter(), edpl, null, null, query.getKeyFilters(), query.getKeyFiltersOperationOrDefault());
}
private EntityDataQuery buildEntityDataQuery(AlarmDataQuery query) {
@ -233,7 +233,7 @@ public class DefaultEntityQueryService implements EntityQueryService {
entitiesSortOrder = sortOrder;
}
EntityDataPageLink edpl = new EntityDataPageLink(maxEntitiesPerAlarmSubscription, 0, null, entitiesSortOrder);
return new EntityDataQuery(query.getEntityFilter(), edpl, query.getEntityFields(), query.getLatestValues(), query.getKeyFilters());
return new EntityDataQuery(query.getEntityFilter(), edpl, query.getEntityFields(), query.getLatestValues(), query.getKeyFilters(), query.getKeyFiltersOperationOrDefault());
}
@Override

12
common/data/src/main/java/org/thingsboard/server/common/data/query/AbstractDataQuery.java

@ -49,4 +49,16 @@ public abstract class AbstractDataQuery<T extends EntityDataPageLink> extends En
this.latestValues = latestValues;
}
public AbstractDataQuery(EntityFilter entityFilter,
T pageLink,
List<EntityKey> entityFields,
List<EntityKey> latestValues,
List<KeyFilter> keyFilters,
ComplexOperation keyFiltersOperation) {
super(entityFilter, keyFilters, keyFiltersOperation);
this.pageLink = pageLink;
this.entityFields = entityFields;
this.latestValues = latestValues;
}
}

7
common/data/src/main/java/org/thingsboard/server/common/data/query/AlarmDataQuery.java

@ -39,8 +39,13 @@ public class AlarmDataQuery extends AbstractDataQuery<AlarmDataPageLink> {
this.alarmFields = alarmFields;
}
public AlarmDataQuery(EntityFilter entityFilter, AlarmDataPageLink pageLink, List<EntityKey> entityFields, List<EntityKey> latestValues, List<KeyFilter> keyFilters, List<EntityKey> alarmFields, ComplexOperation keyFiltersOperation) {
super(entityFilter, pageLink, entityFields, latestValues, keyFilters, keyFiltersOperation);
this.alarmFields = alarmFields;
}
@JsonIgnore
public AlarmDataQuery next() {
return new AlarmDataQuery(getEntityFilter(), getPageLink().nextPageLink(), entityFields, latestValues, keyFilters, alarmFields);
return new AlarmDataQuery(getEntityFilter(), getPageLink().nextPageLink(), entityFields, latestValues, keyFilters, alarmFields, getKeyFiltersOperation());
}
}

13
common/data/src/main/java/org/thingsboard/server/common/data/query/EntityCountQuery.java

@ -34,6 +34,9 @@ public class EntityCountQuery {
@Getter
protected List<KeyFilter> keyFilters;
@Getter
private ComplexOperation keyFiltersOperation;
public EntityCountQuery() {
}
@ -45,4 +48,14 @@ public class EntityCountQuery {
this.entityFilter = entityFilter;
this.keyFilters = keyFilters;
}
public EntityCountQuery(EntityFilter entityFilter, List<KeyFilter> keyFilters, ComplexOperation keyFiltersOperation) {
this.entityFilter = entityFilter;
this.keyFilters = keyFilters;
this.keyFiltersOperation = keyFiltersOperation;
}
public ComplexOperation getKeyFiltersOperationOrDefault() {
return keyFiltersOperation != null ? keyFiltersOperation : ComplexOperation.AND;
}
}

6
common/data/src/main/java/org/thingsboard/server/common/data/query/EntityDataQuery.java

@ -34,9 +34,13 @@ public class EntityDataQuery extends AbstractDataQuery<EntityDataPageLink> {
super(entityFilter, pageLink, entityFields, latestValues, keyFilters);
}
public EntityDataQuery(EntityFilter entityFilter, EntityDataPageLink pageLink, List<EntityKey> entityFields, List<EntityKey> latestValues, List<KeyFilter> keyFilters, ComplexOperation keyFiltersOperation) {
super(entityFilter, pageLink, entityFields, latestValues, keyFilters, keyFiltersOperation);
}
@JsonIgnore
public EntityDataQuery next() {
return new EntityDataQuery(getEntityFilter(), getPageLink().nextPageLink(), entityFields, latestValues, keyFilters);
return new EntityDataQuery(getEntityFilter(), getPageLink().nextPageLink(), entityFields, latestValues, keyFilters, getKeyFiltersOperation());
}
}

Loading…
Cancel
Save