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) { private EntityDataQuery buildEntityDataQuery(AlarmCountQuery query) {
EntityDataPageLink edpl = new EntityDataPageLink(maxEntitiesPerAlarmSubscription, 0, null, EntityDataPageLink edpl = new EntityDataPageLink(maxEntitiesPerAlarmSubscription, 0, null,
new EntityDataSortOrder(new EntityKey(EntityKeyType.ENTITY_FIELD, EntityKeyMapping.CREATED_TIME))); 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) { private EntityDataQuery buildEntityDataQuery(AlarmDataQuery query) {
@ -233,7 +233,7 @@ public class DefaultEntityQueryService implements EntityQueryService {
entitiesSortOrder = sortOrder; entitiesSortOrder = sortOrder;
} }
EntityDataPageLink edpl = new EntityDataPageLink(maxEntitiesPerAlarmSubscription, 0, null, entitiesSortOrder); 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 @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; 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; 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 @JsonIgnore
public AlarmDataQuery next() { 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 @Getter
protected List<KeyFilter> keyFilters; protected List<KeyFilter> keyFilters;
@Getter
private ComplexOperation keyFiltersOperation;
public EntityCountQuery() { public EntityCountQuery() {
} }
@ -45,4 +48,14 @@ public class EntityCountQuery {
this.entityFilter = entityFilter; this.entityFilter = entityFilter;
this.keyFilters = keyFilters; 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); 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 @JsonIgnore
public EntityDataQuery next() { 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