Commit 321d4f1cb2680a2335aa24b0b2b4353e998ecbf8
1 parent
78b40b09
Fixes for cases when asset/device deleted but has entity view assigned
Showing
3 changed files
with
18 additions
and
5 deletions
... | ... | @@ -40,7 +40,8 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.eq; |
40 | 40 | import static com.datastax.driver.core.querybuilder.QueryBuilder.select; |
41 | 41 | import static org.thingsboard.server.dao.model.ModelConstants.CUSTOMER_ID_PROPERTY; |
42 | 42 | import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_ID_COLUMN; |
43 | -import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_BY_TENANT_AND_CUSTOMER_AND_SEARCH_TEXT; | |
43 | +import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_BY_TENANT_AND_CUSTOMER_CF; | |
44 | +import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_BY_TENANT_AND_ENTITY_ID_CF; | |
44 | 45 | import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_BY_TENANT_AND_NAME; |
45 | 46 | import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_BY_TENANT_AND_SEARCH_TEXT_COLUMN_FAMILY_NAME; |
46 | 47 | import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_NAME_PROPERTY; |
... | ... | @@ -101,7 +102,7 @@ public class CassandraEntityViewDao extends CassandraAbstractSearchTextDao<Entit |
101 | 102 | log.debug("Try to find entity views by tenantId [{}], customerId[{}] and pageLink [{}]", |
102 | 103 | tenantId, customerId, pageLink); |
103 | 104 | List<EntityViewEntity> entityViewEntities = findPageWithTextSearch( |
104 | - ENTITY_VIEW_BY_TENANT_AND_CUSTOMER_AND_SEARCH_TEXT, | |
105 | + ENTITY_VIEW_BY_TENANT_AND_CUSTOMER_CF, | |
105 | 106 | Arrays.asList(eq(CUSTOMER_ID_PROPERTY, customerId), eq(TENANT_ID_PROPERTY, tenantId)), |
106 | 107 | pageLink); |
107 | 108 | log.trace("Found find entity views [{}] by tenantId [{}], customerId [{}] and pageLink [{}]", |
... | ... | @@ -112,9 +113,9 @@ public class CassandraEntityViewDao extends CassandraAbstractSearchTextDao<Entit |
112 | 113 | @Override |
113 | 114 | public ListenableFuture<List<EntityView>> findEntityViewsByTenantIdAndEntityIdAsync(UUID tenantId, UUID entityId) { |
114 | 115 | log.debug("Try to find entity views by tenantId [{}] and entityId [{}]", tenantId, entityId); |
115 | - Select.Where query = select().from(getColumnFamilyName()).where(); | |
116 | + Select.Where query = select().from(ENTITY_VIEW_BY_TENANT_AND_ENTITY_ID_CF).where(); | |
116 | 117 | query.and(eq(TENANT_ID_PROPERTY, tenantId)); |
117 | - query.and(eq(ENTITY_ID_COLUMN, entityId)); | |
118 | + query.and(eq(ENTITY_ID_COLUMN, entityId));dr | |
118 | 119 | return findListByStatementAsync(query); |
119 | 120 | } |
120 | 121 | } | ... | ... |
... | ... | @@ -150,7 +150,8 @@ public class ModelConstants { |
150 | 150 | public static final String ENTITY_VIEW_TENANT_ID_PROPERTY = TENANT_ID_PROPERTY; |
151 | 151 | public static final String ENTITY_VIEW_CUSTOMER_ID_PROPERTY = CUSTOMER_ID_PROPERTY; |
152 | 152 | public static final String ENTITY_VIEW_NAME_PROPERTY = DEVICE_NAME_PROPERTY; |
153 | - public static final String ENTITY_VIEW_BY_TENANT_AND_CUSTOMER_AND_SEARCH_TEXT = "entity_view_by_tenant_and_customer"; | |
153 | + public static final String ENTITY_VIEW_BY_TENANT_AND_CUSTOMER_CF = "entity_view_by_tenant_and_customer"; | |
154 | + public static final String ENTITY_VIEW_BY_TENANT_AND_ENTITY_ID_CF = "entity_view_by_tenant_and_entity_id"; | |
154 | 155 | public static final String ENTITY_VIEW_KEYS_PROPERTY = "keys"; |
155 | 156 | public static final String ENTITY_VIEW_START_TS_PROPERTY = "start_ts"; |
156 | 157 | public static final String ENTITY_VIEW_END_TS_PROPERTY = "end_ts"; | ... | ... |
... | ... | @@ -671,3 +671,14 @@ CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.entity_view_by_tenant_and_cus |
671 | 671 | AND id IS NOT NULL |
672 | 672 | PRIMARY KEY (tenant_id, customer_id, search_text, id, entity_id) |
673 | 673 | WITH CLUSTERING ORDER BY (customer_id DESC, search_text ASC, id DESC); |
674 | + | |
675 | +CREATE MATERIALIZED VIEW IF NOT EXISTS thingsboard.entity_view_by_tenant_and_entity_id AS | |
676 | + SELECT * | |
677 | + from thingsboard.entity_views | |
678 | + WHERE tenant_id IS NOT NULL | |
679 | + AND customer_id IS NOT NULL | |
680 | + AND entity_id IS NOT NULL | |
681 | + AND search_text IS NOT NULL | |
682 | + AND id IS NOT NULL | |
683 | + PRIMARY KEY (tenant_id, entity_id, customer_id, search_text, id) | |
684 | + WITH CLUSTERING ORDER BY (entity_id DESC, customer_id DESC, search_text ASC, id DESC); | |
\ No newline at end of file | ... | ... |