Was added new field to entity and method save to dao interface
This commit is contained in:
parent
e132d702a2
commit
3a3f6636e1
@ -0,0 +1,90 @@
|
|||||||
|
/**
|
||||||
|
* Copyright © 2016-2018 The Thingsboard Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.thingsboard.server.dao.entityview;
|
||||||
|
|
||||||
|
import com.datastax.driver.core.Statement;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.thingsboard.server.common.data.EntitySubtype;
|
||||||
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
|
import org.thingsboard.server.common.data.EntityView;
|
||||||
|
import org.thingsboard.server.common.data.page.TextPageLink;
|
||||||
|
import org.thingsboard.server.dao.model.EntitySubtypeEntity;
|
||||||
|
import org.thingsboard.server.dao.model.nosql.EntityViewEntity;
|
||||||
|
import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
|
||||||
|
import org.thingsboard.server.dao.util.NoSqlDao;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_TABLE_FAMILY_NAME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Victor Basanets on 9/06/2017.
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
@NoSqlDao
|
||||||
|
public class CassandraEntityViewDao extends CassandraAbstractSearchTextDao<EntityViewEntity, EntityView> implements EntityViewDao {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<EntityViewEntity> getColumnFamilyClass() {
|
||||||
|
return EntityViewEntity.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getColumnFamilyName() {
|
||||||
|
return ENTITY_VIEW_TABLE_FAMILY_NAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityView save(EntityView domain) {
|
||||||
|
EntityView savedEntityView = super.save(domain);
|
||||||
|
EntitySubtype entitySubtype = new EntitySubtype(savedEntityView.getTenantId(), EntityType.ENTITY_VIEW,
|
||||||
|
savedEntityView.getId().getEntityType().toString());
|
||||||
|
EntitySubtypeEntity entitySubtypeEntity = new EntitySubtypeEntity(entitySubtype);
|
||||||
|
Statement saveStatement = cluster.getMapper(EntitySubtypeEntity.class).saveQuery(entitySubtypeEntity);
|
||||||
|
executeWrite(saveStatement);
|
||||||
|
return savedEntityView;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Wasn't done!!!*/
|
||||||
|
@Override
|
||||||
|
public List<EntityView> findEntityViewByTenantId(UUID tenantId, TextPageLink pageLink) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<EntityView> findEntityViewByTenantIdAndName(UUID tenantId, String name) {
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EntityView> findEntityViewByTenantIdAndEntityId(UUID tenantId, UUID entityId, TextPageLink pageLink) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EntityView> findEntityViewsByTenantIdAndCustomerId(UUID tenantId, UUID customerId, TextPageLink pageLink) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<EntityView> findEntityViewsByTenantIdAndCustomerIdAndEntityId(UUID tenantId, UUID customerId, UUID entityId, TextPageLink pageLink) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -29,6 +29,14 @@ import java.util.UUID;
|
|||||||
*/
|
*/
|
||||||
public interface EntityViewDao extends Dao<EntityView> {
|
public interface EntityViewDao extends Dao<EntityView> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save or update device object
|
||||||
|
*
|
||||||
|
* @param entityView the entity-view object
|
||||||
|
* @return saved entity-view object
|
||||||
|
*/
|
||||||
|
EntityView save(EntityView entityView);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find entity views by tenantId and page link.
|
* Find entity views by tenantId and page link.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -19,24 +19,26 @@ import com.datastax.driver.core.utils.UUIDs;
|
|||||||
import com.datastax.driver.mapping.annotations.PartitionKey;
|
import com.datastax.driver.mapping.annotations.PartitionKey;
|
||||||
import com.datastax.driver.mapping.annotations.Table;
|
import com.datastax.driver.mapping.annotations.Table;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.hibernate.annotations.Type;
|
import org.hibernate.annotations.Type;
|
||||||
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.EntityView;
|
import org.thingsboard.server.common.data.EntityView;
|
||||||
import org.thingsboard.server.common.data.id.CustomerId;
|
import org.thingsboard.server.common.data.id.*;
|
||||||
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.common.data.objects.TelemetryEntityView;
|
||||||
import org.thingsboard.server.dao.model.ModelConstants;
|
import org.thingsboard.server.dao.model.ModelConstants;
|
||||||
import org.thingsboard.server.dao.model.SearchTextEntity;
|
import org.thingsboard.server.dao.model.SearchTextEntity;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.EnumType;
|
||||||
|
import javax.persistence.Enumerated;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_TYPE_PROPERTY;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_TABLE_FAMILY_NAME;
|
import static org.thingsboard.server.dao.model.ModelConstants.ENTITY_VIEW_TABLE_FAMILY_NAME;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.ID_PROPERTY;
|
import static org.thingsboard.server.dao.model.ModelConstants.ID_PROPERTY;
|
||||||
|
|
||||||
@ -57,6 +59,10 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
|||||||
@Column(name = ModelConstants.ENTITY_VIEW_ENTITY_ID_PROPERTY)
|
@Column(name = ModelConstants.ENTITY_VIEW_ENTITY_ID_PROPERTY)
|
||||||
private UUID entityId;
|
private UUID entityId;
|
||||||
|
|
||||||
|
@Enumerated(EnumType.STRING)
|
||||||
|
@Column(name = ENTITY_TYPE_PROPERTY)
|
||||||
|
private EntityType entityType;
|
||||||
|
|
||||||
@PartitionKey(value = 2)
|
@PartitionKey(value = 2)
|
||||||
@Column(name = ModelConstants.ENTITY_VIEW_TENANT_ID_PROPERTY)
|
@Column(name = ModelConstants.ENTITY_VIEW_TENANT_ID_PROPERTY)
|
||||||
private UUID tenantId;
|
private UUID tenantId;
|
||||||
@ -68,9 +74,8 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
|||||||
@Column(name = ModelConstants.ENTITY_VIEW_NAME_PROPERTY)
|
@Column(name = ModelConstants.ENTITY_VIEW_NAME_PROPERTY)
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
@Type(type = "json")
|
|
||||||
@Column(name = ModelConstants.ENTITY_VIEW_KEYS_PROPERTY)
|
@Column(name = ModelConstants.ENTITY_VIEW_KEYS_PROPERTY)
|
||||||
private JsonNode keys;
|
private String keys;
|
||||||
|
|
||||||
@Column(name = ModelConstants.ENTITY_VIEW_TS_BEGIN_PROPERTY)
|
@Column(name = ModelConstants.ENTITY_VIEW_TS_BEGIN_PROPERTY)
|
||||||
private String tsBegin;
|
private String tsBegin;
|
||||||
@ -85,6 +90,8 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
|||||||
@Column(name = ModelConstants.ENTITY_VIEW_ADDITIONAL_INFO_PROPERTY)
|
@Column(name = ModelConstants.ENTITY_VIEW_ADDITIONAL_INFO_PROPERTY)
|
||||||
private JsonNode additionalInfo;
|
private JsonNode additionalInfo;
|
||||||
|
|
||||||
|
private static final ObjectMapper mapper = new ObjectMapper();
|
||||||
|
|
||||||
public EntityViewEntity() {
|
public EntityViewEntity() {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
@ -95,6 +102,7 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
|||||||
}
|
}
|
||||||
if (entityView.getEntityId() != null) {
|
if (entityView.getEntityId() != null) {
|
||||||
this.entityId = entityView.getEntityId().getId();
|
this.entityId = entityView.getEntityId().getId();
|
||||||
|
this.entityType = entityView.getEntityId().getEntityType();
|
||||||
}
|
}
|
||||||
if (entityView.getTenantId() != null) {
|
if (entityView.getTenantId() != null) {
|
||||||
this.tenantId = entityView.getTenantId().getId();
|
this.tenantId = entityView.getTenantId().getId();
|
||||||
@ -103,11 +111,11 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
|||||||
this.customerId = entityView.getCustomerId().getId();
|
this.customerId = entityView.getCustomerId().getId();
|
||||||
}
|
}
|
||||||
this.name = entityView.getName();
|
this.name = entityView.getName();
|
||||||
// try {
|
try {
|
||||||
// this.keys = entityView.getKeys();
|
this.keys = mapper.writeValueAsString(entityView.getKeys());
|
||||||
// } catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// e.printStackTrace();
|
e.printStackTrace();
|
||||||
// }
|
}
|
||||||
this.tsBegin = entityView.getTsBegin() != null ? String.valueOf(entityView.getTsBegin()) : "0";
|
this.tsBegin = entityView.getTsBegin() != null ? String.valueOf(entityView.getTsBegin()) : "0";
|
||||||
this.tsEnd = entityView.getTsEnd() != null ? String.valueOf(entityView.getTsEnd()) : "0";
|
this.tsEnd = entityView.getTsEnd() != null ? String.valueOf(entityView.getTsEnd()) : "0";
|
||||||
this.searchText = entityView.getSearchText();
|
this.searchText = entityView.getSearchText();
|
||||||
@ -124,7 +132,7 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
|||||||
EntityView entityView = new EntityView(new EntityViewId(id));
|
EntityView entityView = new EntityView(new EntityViewId(id));
|
||||||
entityView.setCreatedTime(UUIDs.unixTimestamp(id));
|
entityView.setCreatedTime(UUIDs.unixTimestamp(id));
|
||||||
if (entityId != null) {
|
if (entityId != null) {
|
||||||
entityView.setEntityId(new DeviceId(entityId));
|
entityView.setEntityId(EntityIdFactory.getByTypeAndId(entityType.name(), entityId.toString()));
|
||||||
}
|
}
|
||||||
if (tenantId != null) {
|
if (tenantId != null) {
|
||||||
entityView.setTenantId(new TenantId(tenantId));
|
entityView.setTenantId(new TenantId(tenantId));
|
||||||
@ -133,11 +141,11 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
|||||||
entityView.setCustomerId(new CustomerId(customerId));
|
entityView.setCustomerId(new CustomerId(customerId));
|
||||||
}
|
}
|
||||||
entityView.setName(name);
|
entityView.setName(name);
|
||||||
// try {
|
try {
|
||||||
// entityView.setKeys((TelemetryEntityView) entityView.getKeys().toObject(keys));
|
entityView.setKeys(mapper.readValue(keys, TelemetryEntityView.class));
|
||||||
// } catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// e.printStackTrace();
|
e.printStackTrace();
|
||||||
// }
|
}
|
||||||
entityView.setTsBegin(Long.parseLong(tsBegin));
|
entityView.setTsBegin(Long.parseLong(tsBegin));
|
||||||
entityView.setTsEnd(Long.parseLong(tsEnd));
|
entityView.setTsEnd(Long.parseLong(tsEnd));
|
||||||
entityView.setAdditionalInfo(additionalInfo);
|
entityView.setAdditionalInfo(additionalInfo);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user