thingsboard-memoizeit
Changes
dao/src/main/resources/postgres/schema.sql 14(+14 -0)
Details
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributeKvEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributeKvEntity.java
new file mode 100644
index 0000000..6637ecb
--- /dev/null
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributeKvEntity.java
@@ -0,0 +1,56 @@
+package org.thingsboard.server.dao.model.sql;
+
+import lombok.Data;
+import org.thingsboard.server.common.data.kv.AttributeKvEntry;
+import org.thingsboard.server.dao.model.ToData;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.UUID;
+
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
+@Data
+@Entity
+@Table(name = "attributes_kv")
+public class AttributeKvEntity implements ToData<AttributeKvEntry> {
+
+ @Id
+ @Column(name = ENTITY_TYPE_COLUMN)
+ private String entityType;
+
+ @Id
+ @Column(name = ENTITY_ID_COLUMN)
+ private UUID entityId;
+
+ @Id
+ @Column(name = ATTRIBUTE_TYPE_COLUMN)
+ private String attributeType;
+
+ @Id
+ @Column(name = ATTRIBUTE_KEY_COLUMN)
+ private String attributeKey;
+
+ @Column(name = BOOLEAN_VALUE_COLUMN)
+ private Boolean booleanValue;
+
+ @Column(name = STRING_VALUE_COLUMN)
+ private String strValue;
+
+ @Column(name = LONG_VALUE_COLUMN)
+ private Long longValue;
+
+ @Column(name = DOUBLE_VALUE_COLUMN)
+ private Double doubleValue;
+
+ @Column(name = LAST_UPDATE_TS_COLUMN)
+ private Long lastUpdateTs;
+
+ @Override
+ public AttributeKvEntry toData() {
+ // TODO - add implementation
+ return null;
+ }
+}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributesKvCompositeKey.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributesKvCompositeKey.java
new file mode 100644
index 0000000..a2d5513
--- /dev/null
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributesKvCompositeKey.java
@@ -0,0 +1,14 @@
+package org.thingsboard.server.dao.model.sql;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+@Data
+public class AttributesKvCompositeKey implements Serializable {
+ private String entityType;
+ private UUID entityId;
+ private String attributeType;
+ private String attributeKey;
+}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationCompositeKey.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationCompositeKey.java
index 4af848c..3e13ff5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationCompositeKey.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationCompositeKey.java
@@ -16,12 +16,14 @@
package org.thingsboard.server.dao.model.sql;
import lombok.AllArgsConstructor;
+import lombok.Data;
import org.thingsboard.server.common.data.relation.EntityRelation;
import java.io.Serializable;
import java.util.UUID;
@AllArgsConstructor
+@Data
public class RelationCompositeKey implements Serializable {
private UUID fromId;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java
new file mode 100644
index 0000000..27e366e
--- /dev/null
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/AttributeKvRepository.java
@@ -0,0 +1,10 @@
+package org.thingsboard.server.dao.sql.attributes;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.data.repository.CrudRepository;
+import org.thingsboard.server.dao.model.sql.AttributeKvEntity;
+import org.thingsboard.server.dao.model.sql.AttributesKvCompositeKey;
+
+@ConditionalOnProperty(prefix = "sql", value = "enabled", havingValue = "true")
+public interface AttributeKvRepository extends CrudRepository<AttributeKvEntity, AttributesKvCompositeKey> {
+}
dao/src/main/resources/postgres/schema.sql 14(+14 -0)
diff --git a/dao/src/main/resources/postgres/schema.sql b/dao/src/main/resources/postgres/schema.sql
index afaf936..684ec00 100644
--- a/dao/src/main/resources/postgres/schema.sql
+++ b/dao/src/main/resources/postgres/schema.sql
@@ -74,6 +74,20 @@ CREATE TABLE IF NOT EXISTS asset (
);
ALTER TABLE asset OWNER TO postgres;
+CREATE TABLE IF NOT EXISTS attributes_kv (
+ entity_type character varying(255),
+ entity_id uuid,
+ attribute_type character varying(255),
+ attribute_key character varying(255),
+ bool_v boolean,
+ str_v character varying(255),
+ long_v bigint,
+ dbl_v double precision,
+ last_update_ts bigint,
+ CONSTRAINT attributes_kv_unq_key UNIQUE (entity_type, entity_id, attribute_type, attribute_key)
+);
+ALTER TABLE relation OWNER TO postgres;
+
CREATE TABLE IF NOT EXISTS component_descriptor (
id uuid NOT NULL CONSTRAINT component_descriptor_pkey PRIMARY KEY,
actions character varying(255),