Browse Source

commit2

pull/1053/head
viktorbasanets 8 years ago
parent
commit
70ee363528
  1. 1
      dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java
  2. 32
      dao/src/main/java/org/thingsboard/server/dao/model/nosql/EntityViewEntity.java
  3. 40
      dao/src/main/java/org/thingsboard/server/dao/model/sql/EntityViewEntity.java
  4. 1
      dao/src/main/resources/sql/schema.sql

1
dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java

@ -152,6 +152,7 @@ public class ModelConstants {
public static final String ENTITY_VIEW_TENANT_ID_PROPERTY = TENANT_ID_PROPERTY;
public static final String ENTITY_VIEW_CUSTOMER_ID_PROPERTY = CUSTOMER_ID_PROPERTY;
public static final String ENTITY_VIEW_NAME_PROPERTY = DEVICE_NAME_PROPERTY;
public static final String ENTITY_VIEW_TYPE_PROPERTY = "type_entity";
public static final String ENTITY_VIEW_KEYS_PROPERTY = "keys";
public static final String ENTITY_VIEW_TS_BEGIN_PROPERTY = "ts_begin";
public static final String ENTITY_VIEW_TS_END_PROPERTY = "ts_end";

32
dao/src/main/java/org/thingsboard/server/dao/model/nosql/EntityViewEntity.java

@ -18,9 +18,7 @@ package org.thingsboard.server.dao.model.nosql;
import com.datastax.driver.core.utils.UUIDs;
import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@ -30,15 +28,14 @@ import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.objects.TelemetryEntityView;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import javax.persistence.Column;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_TABLE_FAMILY_NAME;
import static org.thingsboard.server.dao.model.ModelConstants.ID_PROPERTY;
@ -106,16 +103,13 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
this.customerId = entityView.getCustomerId().getId();
}
this.name = entityView.getName();
try {
this.keys = new ObjectMapper().readTree("{\"" + entityView.getName() + "\" : [" +
entityView.getKeys().stream()
.map(k -> "\"" + k + "\"")
.collect(Collectors.joining(", ")) + "]}");
} catch (IOException e) {
e.printStackTrace();
}
this.tsBegin = String.valueOf(entityView.getTsBegin());
this.tsEnd = String.valueOf(entityView.getTsEnd());
// try {
// this.keys = entityView.getKeys();
// } catch (IOException e) {
// e.printStackTrace();
// }
this.tsBegin = entityView.getTsBegin() != null ? String.valueOf(entityView.getTsBegin()) : "0";
this.tsEnd = entityView.getTsEnd() != null ? String.valueOf(entityView.getTsEnd()) : "0";
this.searchText = entityView.getSearchText();
this.additionalInfo = entityView.getAdditionalInfo();
}
@ -139,11 +133,11 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
entityView.setCustomerId(new CustomerId(customerId));
}
entityView.setName(name);
try {
entityView.setKeys(new ObjectMapper().readValue(keys.toString(), new TypeReference<List<String>>(){}));
} catch (IOException e) {
e.printStackTrace();
}
// try {
// entityView.setKeys((TelemetryEntityView) entityView.getKeys().toObject(keys));
// } catch (IOException e) {
// e.printStackTrace();
// }
entityView.setTsBegin(Long.parseLong(tsBegin));
entityView.setTsEnd(Long.parseLong(tsEnd));
entityView.setAdditionalInfo(additionalInfo);

40
dao/src/main/java/org/thingsboard/server/dao/model/sql/EntityViewEntity.java

@ -16,7 +16,6 @@
package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
@ -25,21 +24,18 @@ import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.id.EntityViewId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.*;
import org.thingsboard.server.common.data.objects.TelemetryEntityView;
import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.util.mapping.JsonStringType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.*;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import static org.thingsboard.server.dao.model.ModelConstants.AUDIT_LOG_ENTITY_TYPE_PROPERTY;
import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_TYPE_PROPERTY;
/**
* Created by Victor Basanets on 8/30/2017.
@ -64,9 +60,12 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
@Column(name = ModelConstants.ENTITY_VIEW_NAME_PROPERTY)
private String name;
@Type(type = "json")
@Enumerated(EnumType.STRING)
@Column(name = ENTITY_TYPE_PROPERTY)
private EntityType entityType;
@Column(name = ModelConstants.ENTITY_VIEW_KEYS_PROPERTY)
private JsonNode keys;
private String keys;
@Column(name = ModelConstants.ENTITY_VIEW_TS_BEGIN_PROPERTY)
private String tsBegin;
@ -81,6 +80,8 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
@Column(name = ModelConstants.ENTITY_VIEW_ADDITIONAL_INFO_PROPERTY)
private JsonNode additionalInfo;
private static final ObjectMapper mapper = new ObjectMapper();
public EntityViewEntity() {
super();
}
@ -91,6 +92,7 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
}
if (entityView.getEntityId() != null) {
this.entityId = toString(entityView.getEntityId().getId());
this.entityType = entityView.getEntityId().getEntityType();
}
if (entityView.getTenantId() != null) {
this.tenantId = toString(entityView.getTenantId().getId());
@ -100,15 +102,12 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
}
this.name = entityView.getName();
try {
this.keys = new ObjectMapper().readTree("{\"" + entityView.getName() + "\" : [" +
entityView.getKeys().stream()
.map(k -> "\"" + k + "\"")
.collect(Collectors.joining(", ")) + "]}");
this.keys = mapper.writeValueAsString(entityView.getKeys());
} catch (IOException e) {
e.printStackTrace();
}
this.tsBegin = String.valueOf(entityView.getTsBegin());
this.tsEnd = String.valueOf(entityView.getTsEnd());
this.tsBegin = entityView.getTsBegin() != null ? String.valueOf(entityView.getTsBegin()) : "";
this.tsEnd = entityView.getTsEnd() != null ? String.valueOf(entityView.getTsEnd()) : "";
this.searchText = entityView.getSearchText();
this.additionalInfo = entityView.getAdditionalInfo();
}
@ -128,9 +127,8 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
EntityView entityView = new EntityView(new EntityViewId(getId()));
entityView.setCreatedTime(UUIDs.unixTimestamp(getId()));
/*Ned to refactor and replace DeviceId to Class<> instance*/
if (entityId != null) {
entityView.setEntityId(new DeviceId(toUUID(entityId)));
entityView.setEntityId(EntityIdFactory.getByTypeAndId(entityType.name(), toUUID(entityId).toString()));
}
if (tenantId != null) {
entityView.setTenantId(new TenantId(toUUID(tenantId)));
@ -140,7 +138,7 @@ public class EntityViewEntity extends BaseSqlEntity<EntityView> implements Searc
}
entityView.setName(name);
try {
entityView.setKeys(new ObjectMapper().readValue(keys.toString(), new TypeReference<List<String>>(){}));
entityView.setKeys(mapper.readValue(keys, TelemetryEntityView.class));
} catch (IOException e) {
e.printStackTrace();
}

1
dao/src/main/resources/sql/schema.sql

@ -260,6 +260,7 @@ CREATE TABLE IF NOT EXISTS entity_views (
ts_begin varchar(255),
ts_end varchar(255),
name varchar(255),
entity_type varchar(255),
search_text varchar(255),
entity_id varchar(31),
tenant_id varchar(31)

Loading…
Cancel
Save