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> {
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
|
||||
@ -19,24 +19,26 @@ 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.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
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.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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.SearchTextEntity;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.EnumType;
|
||||
import javax.persistence.Enumerated;
|
||||
|
||||
import java.io.IOException;
|
||||
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.ID_PROPERTY;
|
||||
|
||||
@ -57,6 +59,10 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
||||
@Column(name = ModelConstants.ENTITY_VIEW_ENTITY_ID_PROPERTY)
|
||||
private UUID entityId;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = ENTITY_TYPE_PROPERTY)
|
||||
private EntityType entityType;
|
||||
|
||||
@PartitionKey(value = 2)
|
||||
@Column(name = ModelConstants.ENTITY_VIEW_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
@ -68,9 +74,8 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
||||
@Column(name = ModelConstants.ENTITY_VIEW_NAME_PROPERTY)
|
||||
private String name;
|
||||
|
||||
@Type(type = "json")
|
||||
@Column(name = ModelConstants.ENTITY_VIEW_KEYS_PROPERTY)
|
||||
private JsonNode keys;
|
||||
private String keys;
|
||||
|
||||
@Column(name = ModelConstants.ENTITY_VIEW_TS_BEGIN_PROPERTY)
|
||||
private String tsBegin;
|
||||
@ -85,6 +90,8 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
||||
@Column(name = ModelConstants.ENTITY_VIEW_ADDITIONAL_INFO_PROPERTY)
|
||||
private JsonNode additionalInfo;
|
||||
|
||||
private static final ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
public EntityViewEntity() {
|
||||
super();
|
||||
}
|
||||
@ -95,6 +102,7 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
||||
}
|
||||
if (entityView.getEntityId() != null) {
|
||||
this.entityId = entityView.getEntityId().getId();
|
||||
this.entityType = entityView.getEntityId().getEntityType();
|
||||
}
|
||||
if (entityView.getTenantId() != null) {
|
||||
this.tenantId = entityView.getTenantId().getId();
|
||||
@ -103,11 +111,11 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
||||
this.customerId = entityView.getCustomerId().getId();
|
||||
}
|
||||
this.name = entityView.getName();
|
||||
// try {
|
||||
// this.keys = entityView.getKeys();
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
try {
|
||||
this.keys = mapper.writeValueAsString(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();
|
||||
@ -124,7 +132,7 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
||||
EntityView entityView = new EntityView(new EntityViewId(id));
|
||||
entityView.setCreatedTime(UUIDs.unixTimestamp(id));
|
||||
if (entityId != null) {
|
||||
entityView.setEntityId(new DeviceId(entityId));
|
||||
entityView.setEntityId(EntityIdFactory.getByTypeAndId(entityType.name(), entityId.toString()));
|
||||
}
|
||||
if (tenantId != null) {
|
||||
entityView.setTenantId(new TenantId(tenantId));
|
||||
@ -133,11 +141,11 @@ public class EntityViewEntity implements SearchTextEntity<EntityView> {
|
||||
entityView.setCustomerId(new CustomerId(customerId));
|
||||
}
|
||||
entityView.setName(name);
|
||||
// try {
|
||||
// entityView.setKeys((TelemetryEntityView) entityView.getKeys().toObject(keys));
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
try {
|
||||
entityView.setKeys(mapper.readValue(keys, TelemetryEntityView.class));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
entityView.setTsBegin(Long.parseLong(tsBegin));
|
||||
entityView.setTsEnd(Long.parseLong(tsEnd));
|
||||
entityView.setAdditionalInfo(additionalInfo);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user