diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml
index c749cb2a50..5c0044836c 100644
--- a/application/src/main/resources/thingsboard.yml
+++ b/application/src/main/resources/thingsboard.yml
@@ -106,7 +106,7 @@ coap:
timeout: "${COAP_TIMEOUT:10000}"
database:
- type: "${DATABASE_TYPE:cassandra}" # cassandra OR sql
+ type: "${DATABASE_TYPE:sql}" # cassandra OR sql
# Cassandra driver configuration parameters
cassandra:
diff --git a/common/data/pom.xml b/common/data/pom.xml
index ffee17c00d..2d2df54ddf 100644
--- a/common/data/pom.xml
+++ b/common/data/pom.xml
@@ -66,6 +66,11 @@
mockito-all
test
+
+ com.datastax.cassandra
+ cassandra-driver-core
+ test
+
diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/UUIDConverter.java b/common/data/src/main/java/org/thingsboard/server/common/data/UUIDConverter.java
new file mode 100644
index 0000000000..b7027b427e
--- /dev/null
+++ b/common/data/src/main/java/org/thingsboard/server/common/data/UUIDConverter.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright © 2016-2017 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.common.data;
+
+import java.util.List;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
+/**
+ * Created by ashvayka on 13.07.17.
+ */
+public class UUIDConverter {
+
+ public static UUID fromString(String src) {
+ return UUID.fromString(src.substring(7, 15) + "-" + src.substring(3, 7) + "-1"
+ + src.substring(0, 3) + "-" + src.substring(15, 19) + "-" + src.substring(19));
+ }
+
+ public static String fromTimeUUID(UUID src) {
+ if (src.version() != 1) {
+ throw new IllegalArgumentException("Not a time UUID!");
+ }
+ String str = src.toString();
+ // 58e0a7d7-eebc-11d8-9669-0800200c9a66 => 1d8eebc58e0a7d796690800200c9a66. Note that [11d8] -> [1d8]
+ return str.substring(15, 18) + str.substring(9, 13) + str.substring(0, 8) + str.substring(19, 23) + str.substring(24);
+ }
+
+ public static List fromTimeUUIDs(List uuids) {
+ if (uuids == null) {
+ return null;
+ }
+ return uuids.stream().map(UUIDConverter::fromTimeUUID).collect(Collectors.toList());
+ }
+
+}
+
diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/asset/TenantAssetType.java b/common/data/src/main/java/org/thingsboard/server/common/data/asset/TenantAssetType.java
index 8e0eb0e69e..b7cf5f9ac0 100644
--- a/common/data/src/main/java/org/thingsboard/server/common/data/asset/TenantAssetType.java
+++ b/common/data/src/main/java/org/thingsboard/server/common/data/asset/TenantAssetType.java
@@ -15,6 +15,7 @@
*/
package org.thingsboard.server.common.data.asset;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.TenantId;
import java.util.UUID;
@@ -40,6 +41,11 @@ public class TenantAssetType {
this.tenantId = new TenantId(tenantId);
}
+ public TenantAssetType(String type, String tenantId) {
+ this.type = type;
+ this.tenantId = new TenantId(UUIDConverter.fromString(tenantId));
+ }
+
public String getType() {
return type;
}
diff --git a/common/data/src/test/java/org/thingsboard/server/common/data/UUIDConverterTest.java b/common/data/src/test/java/org/thingsboard/server/common/data/UUIDConverterTest.java
new file mode 100644
index 0000000000..c7b1a08d56
--- /dev/null
+++ b/common/data/src/test/java/org/thingsboard/server/common/data/UUIDConverterTest.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright © 2016-2017 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.common.data;
+
+import com.datastax.driver.core.utils.UUIDs;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import java.util.Random;
+import java.util.UUID;
+
+/**
+ * Created by ashvayka on 14.07.17.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class UUIDConverterTest {
+
+ @Test
+ public void basicUuidToStringTest() {
+ UUID original = UUID.fromString("58e0a7d7-eebc-11d8-9669-0800200c9a66");
+ String result = UUIDConverter.fromTimeUUID(original);
+ Assert.assertEquals("1d8eebc58e0a7d796690800200c9a66", result);
+ }
+
+ @Test
+ public void basicStringToUUIDTest() {
+ UUID result = UUIDConverter.fromString("1d8eebc58e0a7d796690800200c9a66");
+ Assert.assertEquals(UUID.fromString("58e0a7d7-eebc-11d8-9669-0800200c9a66"), result);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void nonV1UuidToStringTest() {
+ UUIDConverter.fromTimeUUID(UUID.fromString("58e0a7d7-eebc-01d8-9669-0800200c9a66"));
+ }
+
+ @Test
+ public void basicUuidComperisonTest() {
+ Random r = new Random(System.currentTimeMillis());
+ for (int i = 0; i < 100000; i++) {
+ long ts = System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 365 * 10;
+ long before = (long) (Math.random() * ts);
+ long after = (long) (Math.random() * ts);
+ if (before > after) {
+ long tmp = after;
+ after = before;
+ before = tmp;
+ }
+
+ String beforeStr = UUIDConverter.fromTimeUUID(UUIDs.startOf(before));
+ String afterStr = UUIDConverter.fromTimeUUID(UUIDs.startOf(after));
+
+ if (afterStr.compareTo(beforeStr) < 0) {
+ System.out.println("Before: " + before + " | " + beforeStr);
+ System.out.println("After: " + after + " | " + afterStr);
+ }
+ Assert.assertTrue(afterStr.compareTo(beforeStr) >= 0);
+ }
+ }
+
+
+}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java
index d52df0f4e8..4fb9db5f6e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmService.java
@@ -47,7 +47,6 @@ import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.util.ArrayList;
import java.util.List;
-import java.util.UUID;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/alarm/CassandraAlarmDao.java b/dao/src/main/java/org/thingsboard/server/dao/alarm/CassandraAlarmDao.java
index 83578eb29a..746f18da29 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/alarm/CassandraAlarmDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/alarm/CassandraAlarmDao.java
@@ -33,11 +33,11 @@ import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
-import org.thingsboard.server.dao.nosql.CassandraAbstractModelDao;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.nosql.AlarmEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractModelDao;
import org.thingsboard.server.dao.relation.RelationDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import java.util.ArrayList;
import java.util.List;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetDao.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetDao.java
index 2b720ae04a..73211fedfe 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetDao.java
@@ -20,7 +20,6 @@ import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.asset.TenantAssetType;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.dao.Dao;
-import org.thingsboard.server.dao.model.TenantAssetTypeEntity;
import java.util.List;
import java.util.Optional;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetSearchQuery.java b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetSearchQuery.java
index 440f0d2d22..c010906b1a 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/asset/AssetSearchQuery.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/asset/AssetSearchQuery.java
@@ -18,9 +18,9 @@ package org.thingsboard.server.dao.asset;
import lombok.Data;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.relation.EntityRelation;
-import org.thingsboard.server.dao.relation.RelationsSearchParameters;
import org.thingsboard.server.dao.relation.EntityRelationsQuery;
import org.thingsboard.server.dao.relation.EntityTypeFilter;
+import org.thingsboard.server.dao.relation.RelationsSearchParameters;
import javax.annotation.Nullable;
import java.util.Collections;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java b/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java
index 7e9f129a10..3a2805cff9 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/asset/BaseAssetService.java
@@ -51,7 +51,7 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
-import static org.thingsboard.server.dao.DaoUtil.*;
+import static org.thingsboard.server.dao.DaoUtil.toUUIDs;
import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
import static org.thingsboard.server.dao.service.Validator.*;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/asset/CassandraAssetDao.java b/dao/src/main/java/org/thingsboard/server/dao/asset/CassandraAssetDao.java
index c2025b9f7d..339c9ea4c3 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/asset/CassandraAssetDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/asset/CassandraAssetDao.java
@@ -27,11 +27,11 @@ import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.asset.TenantAssetType;
import org.thingsboard.server.common.data.page.TextPageLink;
-import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.TenantAssetTypeEntity;
import org.thingsboard.server.dao.model.nosql.AssetEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import javax.annotation.Nullable;
import java.util.*;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/attributes/BaseAttributesService.java b/dao/src/main/java/org/thingsboard/server/dao/attributes/BaseAttributesService.java
index bef2faa37f..0086e5212f 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/attributes/BaseAttributesService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/attributes/BaseAttributesService.java
@@ -15,8 +15,6 @@
*/
package org.thingsboard.server.dao.attributes;
-import com.datastax.driver.core.ResultSet;
-import com.datastax.driver.core.ResultSetFuture;
import com.google.common.collect.Lists;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/attributes/CassandraBaseAttributesDao.java b/dao/src/main/java/org/thingsboard/server/dao/attributes/CassandraBaseAttributesDao.java
index 247463fbe4..d3134b7d0f 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/attributes/CassandraBaseAttributesDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/attributes/CassandraBaseAttributesDao.java
@@ -26,10 +26,10 @@ import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
import org.thingsboard.server.common.data.kv.BaseAttributeKvEntry;
-import org.thingsboard.server.dao.nosql.CassandraAbstractAsyncDao;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.ModelConstants;
+import org.thingsboard.server.dao.nosql.CassandraAbstractAsyncDao;
import org.thingsboard.server.dao.timeseries.CassandraBaseTimeseriesDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java b/dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java
index 85d0056346..be4d9ad033 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/cassandra/CassandraCluster.java
@@ -17,9 +17,10 @@ package org.thingsboard.server.dao.cassandra;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
-import javax.annotation.PostConstruct;
import org.thingsboard.server.dao.util.NoSqlDao;
+import javax.annotation.PostConstruct;
+
@Component
@NoSqlDao
public class CassandraCluster extends AbstractCassandraCluster {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/component/CassandraBaseComponentDescriptorDao.java b/dao/src/main/java/org/thingsboard/server/dao/component/CassandraBaseComponentDescriptorDao.java
index d39b7f8bab..99413d5d47 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/component/CassandraBaseComponentDescriptorDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/component/CassandraBaseComponentDescriptorDao.java
@@ -27,11 +27,11 @@ import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.common.data.plugin.ComponentDescriptor;
import org.thingsboard.server.common.data.plugin.ComponentScope;
import org.thingsboard.server.common.data.plugin.ComponentType;
-import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.nosql.ComponentDescriptorEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import java.util.Arrays;
import java.util.List;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/customer/CassandraCustomerDao.java b/dao/src/main/java/org/thingsboard/server/dao/customer/CassandraCustomerDao.java
index cdb49f8b26..629bd98055 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/customer/CassandraCustomerDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/customer/CassandraCustomerDao.java
@@ -20,11 +20,11 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.page.TextPageLink;
-import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.nosql.CustomerEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import java.util.Arrays;
import java.util.List;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerDao.java b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerDao.java
index 3c8f66da0a..53d764bd97 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerDao.java
@@ -15,12 +15,12 @@
*/
package org.thingsboard.server.dao.customer;
-import java.util.Optional;
import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.dao.Dao;
import java.util.List;
+import java.util.Optional;
import java.util.UUID;
/**
diff --git a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java
index 24d1b8a055..4973d9ecf8 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/customer/CustomerServiceImpl.java
@@ -15,12 +15,6 @@
*/
package org.thingsboard.server.dao.customer;
-import static org.thingsboard.server.dao.service.Validator.validateId;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Optional;
-
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.util.concurrent.ListenableFuture;
@@ -45,6 +39,12 @@ import org.thingsboard.server.dao.service.Validator;
import org.thingsboard.server.dao.tenant.TenantDao;
import org.thingsboard.server.dao.user.UserService;
+import java.io.IOException;
+import java.util.List;
+import java.util.Optional;
+
+import static org.thingsboard.server.dao.service.Validator.validateId;
+
@Service
@Slf4j
public class CustomerServiceImpl extends AbstractEntityService implements CustomerService {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardDao.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardDao.java
index 07a7d350b6..b5cb0a84b5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardDao.java
@@ -17,9 +17,9 @@ package org.thingsboard.server.dao.dashboard;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Dashboard;
+import org.thingsboard.server.dao.model.nosql.DashboardEntity;
import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
import org.thingsboard.server.dao.util.NoSqlDao;
-import org.thingsboard.server.dao.model.nosql.DashboardEntity;
import static org.thingsboard.server.dao.model.ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardInfoDao.java
index 7d1ae35ecf..d0651a47c3 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardInfoDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/dashboard/CassandraDashboardInfoDao.java
@@ -19,10 +19,10 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.DashboardInfo;
import org.thingsboard.server.common.data.page.TextPageLink;
-import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.nosql.DashboardInfoEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import java.util.Arrays;
import java.util.Collections;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceCredentialsDao.java b/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceCredentialsDao.java
index f1e1dd9bb1..5073516f01 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceCredentialsDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceCredentialsDao.java
@@ -19,11 +19,11 @@ import com.datastax.driver.core.querybuilder.Select.Where;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.security.DeviceCredentials;
-import org.thingsboard.server.dao.nosql.CassandraAbstractModelDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.nosql.DeviceCredentialsEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractModelDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import java.util.UUID;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceDao.java b/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceDao.java
index c465eeaee0..a0d4fe1308 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/device/CassandraDeviceDao.java
@@ -27,11 +27,11 @@ import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.TenantDeviceType;
import org.thingsboard.server.common.data.page.TextPageLink;
-import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.TenantDeviceTypeEntity;
import org.thingsboard.server.dao.model.nosql.DeviceEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import javax.annotation.Nullable;
import java.util.*;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceDao.java b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceDao.java
index d928a9a12c..a6d785e4a3 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/device/DeviceDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/device/DeviceDao.java
@@ -20,7 +20,6 @@ import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.TenantDeviceType;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.dao.Dao;
-import org.thingsboard.server.dao.model.TenantDeviceTypeEntity;
import java.util.List;
import java.util.Optional;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java
index 68844dcdb8..c4e2e4272a 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/entity/BaseEntityService.java
@@ -21,7 +21,7 @@ import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.thingsboard.server.common.data.*;
+import org.thingsboard.server.common.data.HasName;
import org.thingsboard.server.common.data.alarm.AlarmId;
import org.thingsboard.server.common.data.id.*;
import org.thingsboard.server.dao.alarm.AlarmService;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/event/CassandraBaseEventDao.java b/dao/src/main/java/org/thingsboard/server/dao/event/CassandraBaseEventDao.java
index 26eb84757a..8b89e4538b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/event/CassandraBaseEventDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/event/CassandraBaseEventDao.java
@@ -28,11 +28,11 @@ import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.EventId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.TimePageLink;
-import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTimeDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.nosql.EventEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTimeDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import java.util.Arrays;
import java.util.List;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/BaseSqlEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/BaseSqlEntity.java
new file mode 100644
index 0000000000..a6110f0887
--- /dev/null
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/BaseSqlEntity.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright © 2016-2017 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.model;
+
+import lombok.Data;
+import org.thingsboard.server.common.data.UUIDConverter;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.persistence.MappedSuperclass;
+import java.util.UUID;
+
+/**
+ * Created by ashvayka on 13.07.17.
+ */
+@Data
+@MappedSuperclass
+public abstract class BaseSqlEntity implements BaseEntity {
+
+ @Id
+ @Column(name = ModelConstants.ID_PROPERTY)
+ protected String id;
+
+ @Override
+ public UUID getId() {
+ if (id == null) {
+ return null;
+ }
+ return UUIDConverter.fromString(id);
+ }
+
+ public void setId(UUID id) {
+ this.id = UUIDConverter.fromTimeUUID(id);
+ }
+
+ protected UUID toUUID(String src){
+ return UUIDConverter.fromString(src);
+ }
+
+ protected String toString(UUID timeUUID){
+ return UUIDConverter.fromTimeUUID(timeUUID);
+ }
+
+}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java
index 3fd57c5f61..1bf88bea82 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java
@@ -15,18 +15,20 @@
*/
package org.thingsboard.server.dao.model;
-import java.util.UUID;
-
import com.datastax.driver.core.utils.UUIDs;
import org.apache.commons.lang3.ArrayUtils;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.kv.Aggregation;
+import java.util.UUID;
+
public class ModelConstants {
private ModelConstants() {
}
public static UUID NULL_UUID = UUIDs.startOf(0);
+ public static String NULL_UUID_STR = UUIDConverter.fromTimeUUID(NULL_UUID);
/**
* Generic constants.
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/AdminSettingsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/AdminSettingsEntity.java
index 11ddd4d540..89cd08a834 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/AdminSettingsEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/AdminSettingsEntity.java
@@ -15,24 +15,20 @@
*/
package org.thingsboard.server.dao.model.nosql;
-import static org.thingsboard.server.dao.model.ModelConstants.ADMIN_SETTINGS_COLUMN_FAMILY_NAME;
-import static org.thingsboard.server.dao.model.ModelConstants.ADMIN_SETTINGS_JSON_VALUE_PROPERTY;
-import static org.thingsboard.server.dao.model.ModelConstants.ADMIN_SETTINGS_KEY_PROPERTY;
-import static org.thingsboard.server.dao.model.ModelConstants.ID_PROPERTY;
-
-import java.util.UUID;
-
-import org.thingsboard.server.common.data.AdminSettings;
-import org.thingsboard.server.common.data.id.AdminSettingsId;
-import org.thingsboard.server.dao.model.BaseEntity;
-import org.thingsboard.server.dao.model.type.JsonCodec;
-
import com.datastax.driver.core.utils.UUIDs;
import com.datastax.driver.mapping.annotations.Column;
import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
import com.fasterxml.jackson.databind.JsonNode;
+import org.thingsboard.server.common.data.AdminSettings;
+import org.thingsboard.server.common.data.id.AdminSettingsId;
+import org.thingsboard.server.dao.model.BaseEntity;
+import org.thingsboard.server.dao.model.type.JsonCodec;
+
+import java.util.UUID;
+
+import static org.thingsboard.server.dao.model.ModelConstants.*;
@Table(name = ADMIN_SETTINGS_COLUMN_FAMILY_NAME)
public final class AdminSettingsEntity implements BaseEntity {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/CustomerEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/CustomerEntity.java
index 52134993d6..958de3ab5e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/CustomerEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/CustomerEntity.java
@@ -15,20 +15,19 @@
*/
package org.thingsboard.server.dao.model.nosql;
-import java.util.UUID;
-
-import org.thingsboard.server.common.data.Customer;
-import org.thingsboard.server.common.data.id.CustomerId;
-import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.dao.model.SearchTextEntity;
-import org.thingsboard.server.dao.model.type.JsonCodec;
-
import com.datastax.driver.core.utils.UUIDs;
import com.datastax.driver.mapping.annotations.Column;
import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
import com.fasterxml.jackson.databind.JsonNode;
+import org.thingsboard.server.common.data.Customer;
+import org.thingsboard.server.common.data.id.CustomerId;
+import org.thingsboard.server.common.data.id.TenantId;
+import org.thingsboard.server.dao.model.SearchTextEntity;
+import org.thingsboard.server.dao.model.type.JsonCodec;
+
+import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardEntity.java
index ef9df9765d..f246f92cbf 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardEntity.java
@@ -15,8 +15,12 @@
*/
package org.thingsboard.server.dao.model.nosql;
-import java.util.UUID;
-
+import com.datastax.driver.core.utils.UUIDs;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+import com.datastax.driver.mapping.annotations.Transient;
+import com.fasterxml.jackson.databind.JsonNode;
import org.thingsboard.server.common.data.Dashboard;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DashboardId;
@@ -24,12 +28,7 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.JsonCodec;
-import com.datastax.driver.core.utils.UUIDs;
-import com.datastax.driver.mapping.annotations.Column;
-import com.datastax.driver.mapping.annotations.PartitionKey;
-import com.datastax.driver.mapping.annotations.Table;
-import com.datastax.driver.mapping.annotations.Transient;
-import com.fasterxml.jackson.databind.JsonNode;
+import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardInfoEntity.java
index 4a318592ea..467c400a2f 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardInfoEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DashboardInfoEntity.java
@@ -15,19 +15,18 @@
*/
package org.thingsboard.server.dao.model.nosql;
-import java.util.UUID;
-
+import com.datastax.driver.core.utils.UUIDs;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+import com.datastax.driver.mapping.annotations.Transient;
import org.thingsboard.server.common.data.DashboardInfo;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.model.SearchTextEntity;
-import com.datastax.driver.core.utils.UUIDs;
-import com.datastax.driver.mapping.annotations.Column;
-import com.datastax.driver.mapping.annotations.PartitionKey;
-import com.datastax.driver.mapping.annotations.Table;
-import com.datastax.driver.mapping.annotations.Transient;
+import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceCredentialsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceCredentialsEntity.java
index 3acfbad0fb..806af3b3b5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceCredentialsEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceCredentialsEntity.java
@@ -15,8 +15,11 @@
*/
package org.thingsboard.server.dao.model.nosql;
-import java.util.UUID;
-
+import com.datastax.driver.core.utils.UUIDs;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+import com.datastax.driver.mapping.annotations.Transient;
import org.thingsboard.server.common.data.id.DeviceCredentialsId;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.security.DeviceCredentials;
@@ -24,11 +27,7 @@ import org.thingsboard.server.common.data.security.DeviceCredentialsType;
import org.thingsboard.server.dao.model.BaseEntity;
import org.thingsboard.server.dao.model.type.DeviceCredentialsTypeCodec;
-import com.datastax.driver.core.utils.UUIDs;
-import com.datastax.driver.mapping.annotations.Column;
-import com.datastax.driver.mapping.annotations.PartitionKey;
-import com.datastax.driver.mapping.annotations.Table;
-import com.datastax.driver.mapping.annotations.Transient;
+import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceEntity.java
index 3d54db615f..26dd1d85ad 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/DeviceEntity.java
@@ -28,10 +28,10 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.JsonCodec;
-import static org.thingsboard.server.dao.model.ModelConstants.*;
-
import java.util.UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
@Table(name = DEVICE_COLUMN_FAMILY_NAME)
public final class DeviceEntity implements SearchTextEntity {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/PluginMetaDataEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/PluginMetaDataEntity.java
index 4a0dca261c..3d2e6b3c96 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/PluginMetaDataEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/PluginMetaDataEntity.java
@@ -26,11 +26,11 @@ import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.ComponentLifecycleStateCodec;
import org.thingsboard.server.dao.model.type.JsonCodec;
-import static org.thingsboard.server.dao.model.ModelConstants.*;
-
import java.util.Objects;
import java.util.UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
@Table(name = PLUGIN_COLUMN_FAMILY_NAME)
public class PluginMetaDataEntity implements SearchTextEntity {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/RuleMetaDataEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/RuleMetaDataEntity.java
index dea7661769..b278aeabb6 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/RuleMetaDataEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/RuleMetaDataEntity.java
@@ -30,12 +30,12 @@ import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.ComponentLifecycleStateCodec;
import org.thingsboard.server.dao.model.type.JsonCodec;
-import static org.thingsboard.server.dao.model.ModelConstants.*;
-
import javax.persistence.Transient;
import java.util.Objects;
import java.util.UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
@Table(name = RULE_COLUMN_FAMILY_NAME)
public class RuleMetaDataEntity implements SearchTextEntity {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/TenantEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/TenantEntity.java
index e97fee3cbf..8adb57449b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/TenantEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/TenantEntity.java
@@ -15,19 +15,19 @@
*/
package org.thingsboard.server.dao.model.nosql;
-import java.util.UUID;
-
-import org.thingsboard.server.common.data.Tenant;
-import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.dao.model.SearchTextEntity;
-import org.thingsboard.server.dao.model.type.JsonCodec;
-
import com.datastax.driver.core.utils.UUIDs;
import com.datastax.driver.mapping.annotations.Column;
import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
import com.fasterxml.jackson.databind.JsonNode;
+import org.thingsboard.server.common.data.Tenant;
+import org.thingsboard.server.common.data.id.TenantId;
+import org.thingsboard.server.dao.model.SearchTextEntity;
+import org.thingsboard.server.dao.model.type.JsonCodec;
+
+import java.util.UUID;
+
import static org.thingsboard.server.dao.model.ModelConstants.*;
@Table(name = TENANT_COLUMN_FAMILY_NAME)
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserCredentialsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserCredentialsEntity.java
index 8aab37dd3b..d748d7fad5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserCredentialsEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserCredentialsEntity.java
@@ -15,18 +15,18 @@
*/
package org.thingsboard.server.dao.model.nosql;
-import java.util.UUID;
-
-import org.thingsboard.server.common.data.id.UserCredentialsId;
-import org.thingsboard.server.common.data.id.UserId;
-import org.thingsboard.server.common.data.security.UserCredentials;
-
import com.datastax.driver.core.utils.UUIDs;
import com.datastax.driver.mapping.annotations.Column;
import com.datastax.driver.mapping.annotations.PartitionKey;
import com.datastax.driver.mapping.annotations.Table;
import com.datastax.driver.mapping.annotations.Transient;
+import org.thingsboard.server.common.data.id.UserCredentialsId;
+import org.thingsboard.server.common.data.id.UserId;
+import org.thingsboard.server.common.data.security.UserCredentials;
import org.thingsboard.server.dao.model.BaseEntity;
+
+import java.util.UUID;
+
import static org.thingsboard.server.dao.model.ModelConstants.*;
@Table(name = USER_CREDENTIALS_COLUMN_FAMILY_NAME)
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserEntity.java
index 29beadd592..50d336caf5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/UserEntity.java
@@ -15,8 +15,12 @@
*/
package org.thingsboard.server.dao.model.nosql;
-import java.util.UUID;
-
+import com.datastax.driver.core.utils.UUIDs;
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+import com.datastax.driver.mapping.annotations.Transient;
+import com.fasterxml.jackson.databind.JsonNode;
import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.TenantId;
@@ -26,12 +30,8 @@ import org.thingsboard.server.dao.model.SearchTextEntity;
import org.thingsboard.server.dao.model.type.AuthorityCodec;
import org.thingsboard.server.dao.model.type.JsonCodec;
-import com.datastax.driver.core.utils.UUIDs;
-import com.datastax.driver.mapping.annotations.Column;
-import com.datastax.driver.mapping.annotations.PartitionKey;
-import com.datastax.driver.mapping.annotations.Table;
-import com.datastax.driver.mapping.annotations.Transient;
-import com.fasterxml.jackson.databind.JsonNode;
+import java.util.UUID;
+
import static org.thingsboard.server.dao.model.ModelConstants.*;
@Table(name = USER_COLUMN_FAMILY_NAME)
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java
index 47db143eba..fa476d7eea 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetTypeEntity.java
@@ -26,10 +26,11 @@ import org.thingsboard.server.common.data.id.WidgetTypeId;
import org.thingsboard.server.common.data.widget.WidgetType;
import org.thingsboard.server.dao.model.BaseEntity;
import org.thingsboard.server.dao.model.type.JsonCodec;
-import static org.thingsboard.server.dao.model.ModelConstants.*;
import java.util.UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
@Table(name = WIDGET_TYPE_COLUMN_FAMILY_NAME)
public final class WidgetTypeEntity implements BaseEntity {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java
index edec5bd3dc..75cce98eaf 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/nosql/WidgetsBundleEntity.java
@@ -25,11 +25,12 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.WidgetsBundleId;
import org.thingsboard.server.common.data.widget.WidgetsBundle;
import org.thingsboard.server.dao.model.SearchTextEntity;
-import static org.thingsboard.server.dao.model.ModelConstants.*;
import java.nio.ByteBuffer;
import java.util.UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.*;
+
@Table(name = WIDGETS_BUNDLE_COLUMN_FAMILY_NAME)
public final class WidgetsBundleEntity implements SearchTextEntity {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AdminSettingsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AdminSettingsEntity.java
index 82453ad1de..bd04586aa0 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AdminSettingsEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AdminSettingsEntity.java
@@ -18,31 +18,33 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.AdminSettings;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.AdminSettingsId;
import org.thingsboard.server.dao.model.BaseEntity;
+import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.util.mapping.JsonStringType;
-import javax.persistence.*;
-import java.util.UUID;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
import static org.thingsboard.server.dao.model.ModelConstants.*;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ADMIN_SETTINGS_COLUMN_FAMILY_NAME)
-public final class AdminSettingsEntity implements BaseEntity {
+public final class AdminSettingsEntity extends BaseSqlEntity implements BaseEntity {
@Transient
private static final long serialVersionUID = 842759712850362147L;
- @Id
- @Column(name = ID_PROPERTY)
- private UUID id;
-
@Column(name = ADMIN_SETTINGS_KEY_PROPERTY)
private String key;
@@ -56,26 +58,16 @@ public final class AdminSettingsEntity implements BaseEntity {
public AdminSettingsEntity(AdminSettings adminSettings) {
if (adminSettings.getId() != null) {
- this.id = adminSettings.getId().getId();
+ this.setId(adminSettings.getId().getId());
}
this.key = adminSettings.getKey();
this.jsonValue = adminSettings.getJsonValue();
}
- @Override
- public UUID getId() {
- return id;
- }
-
- @Override
- public void setId(UUID id) {
- this.id = id;
- }
-
@Override
public AdminSettings toData() {
- AdminSettings adminSettings = new AdminSettings(new AdminSettingsId(id));
- adminSettings.setCreatedTime(UUIDs.unixTimestamp(id));
+ AdminSettings adminSettings = new AdminSettings(new AdminSettingsId(UUIDConverter.fromString(id)));
+ adminSettings.setCreatedTime(UUIDs.unixTimestamp(UUIDConverter.fromString(id)));
adminSettings.setKey(key);
adminSettings.setJsonValue(jsonValue);
return adminSettings;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AlarmEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AlarmEntity.java
index 6159d9f6cb..772c35578d 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AlarmEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AlarmEntity.java
@@ -18,9 +18,11 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.EntityType;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.alarm.Alarm;
import org.thingsboard.server.common.data.alarm.AlarmId;
import org.thingsboard.server.common.data.alarm.AlarmSeverity;
@@ -28,32 +30,29 @@ import org.thingsboard.server.common.data.alarm.AlarmStatus;
import org.thingsboard.server.common.data.id.EntityIdFactory;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.model.BaseEntity;
+import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.util.mapping.JsonStringType;
import javax.persistence.*;
-import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ALARM_COLUMN_FAMILY_NAME)
-public final class AlarmEntity implements BaseEntity {
+public final class AlarmEntity extends BaseSqlEntity implements BaseEntity {
@Transient
private static final long serialVersionUID = -339979717281685984L;
- @Id
- @Column(name = ID_PROPERTY)
- private UUID id;
-
@Column(name = ALARM_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ALARM_ORIGINATOR_ID_PROPERTY)
- private UUID originatorId;
+ private String originatorId;
@Column(name = ALARM_ORIGINATOR_TYPE_PROPERTY)
private EntityType originatorType;
@@ -94,13 +93,13 @@ public final class AlarmEntity implements BaseEntity {
public AlarmEntity(Alarm alarm) {
if (alarm.getId() != null) {
- this.id = alarm.getId().getId();
+ this.setId(alarm.getId().getId());
}
if (alarm.getTenantId() != null) {
- this.tenantId = alarm.getTenantId().getId();
+ this.tenantId = UUIDConverter.fromTimeUUID(alarm.getTenantId().getId());
}
this.type = alarm.getType();
- this.originatorId = alarm.getOriginator().getId();
+ this.originatorId = UUIDConverter.fromTimeUUID(alarm.getOriginator().getId());
this.originatorType = alarm.getOriginator().getEntityType();
this.type = alarm.getType();
this.severity = alarm.getSeverity();
@@ -115,12 +114,12 @@ public final class AlarmEntity implements BaseEntity {
@Override
public Alarm toData() {
- Alarm alarm = new Alarm(new AlarmId(id));
- alarm.setCreatedTime(UUIDs.unixTimestamp(id));
+ Alarm alarm = new Alarm(new AlarmId(UUIDConverter.fromString(id)));
+ alarm.setCreatedTime(UUIDs.unixTimestamp(UUIDConverter.fromString(id)));
if (tenantId != null) {
- alarm.setTenantId(new TenantId(tenantId));
+ alarm.setTenantId(new TenantId(UUIDConverter.fromString(tenantId)));
}
- alarm.setOriginator(EntityIdFactory.getByTypeAndUuid(originatorType, originatorId));
+ alarm.setOriginator(EntityIdFactory.getByTypeAndUuid(originatorType, UUIDConverter.fromString(originatorId)));
alarm.setType(type);
alarm.setSeverity(severity);
alarm.setStatus(status);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AssetEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AssetEntity.java
index 8f0792c9c3..730d87e368 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AssetEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AssetEntity.java
@@ -18,39 +18,41 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.id.AssetId;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.TenantId;
+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.*;
-import java.util.UUID;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
import static org.thingsboard.server.dao.model.ModelConstants.*;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ASSET_COLUMN_FAMILY_NAME)
-public final class AssetEntity implements SearchTextEntity {
+public final class AssetEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = -4089175869616037592L;
- @Id
- @Column(name = ID_PROPERTY)
- private UUID id;
-
@Column(name = ASSET_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ASSET_CUSTOMER_ID_PROPERTY)
- private UUID customerId;
+ private String customerId;
@Column(name = ASSET_NAME_PROPERTY)
private String name;
@@ -71,13 +73,13 @@ public final class AssetEntity implements SearchTextEntity {
public AssetEntity(Asset asset) {
if (asset.getId() != null) {
- this.id = asset.getId().getId();
+ this.setId(asset.getId().getId());
}
if (asset.getTenantId() != null) {
- this.tenantId = asset.getTenantId().getId();
+ this.tenantId = UUIDConverter.fromTimeUUID(asset.getTenantId().getId());
}
if (asset.getCustomerId() != null) {
- this.customerId = asset.getCustomerId().getId();
+ this.customerId = UUIDConverter.fromTimeUUID(asset.getCustomerId().getId());
}
this.name = asset.getName();
this.type = asset.getType();
@@ -100,13 +102,13 @@ public final class AssetEntity implements SearchTextEntity {
@Override
public Asset toData() {
- Asset asset = new Asset(new AssetId(id));
- asset.setCreatedTime(UUIDs.unixTimestamp(id));
+ Asset asset = new Asset(new AssetId(UUIDConverter.fromString(id)));
+ asset.setCreatedTime(UUIDs.unixTimestamp(UUIDConverter.fromString(id)));
if (tenantId != null) {
- asset.setTenantId(new TenantId(tenantId));
+ asset.setTenantId(new TenantId(UUIDConverter.fromString(tenantId)));
}
if (customerId != null) {
- asset.setCustomerId(new CustomerId(customerId));
+ asset.setCustomerId(new CustomerId(UUIDConverter.fromString(customerId)));
}
asset.setName(name);
asset.setType(type);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributeKvCompositeKey.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributeKvCompositeKey.java
index 0efda29230..e6d5ca7715 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributeKvCompositeKey.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AttributeKvCompositeKey.java
@@ -21,14 +21,13 @@ import lombok.NoArgsConstructor;
import org.thingsboard.server.common.data.EntityType;
import java.io.Serializable;
-import java.util.UUID;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AttributeKvCompositeKey implements Serializable {
private EntityType entityType;
- private UUID entityId;
+ private String entityId;
private String attributeType;
private String attributeKey;
}
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
index c7ba821773..09f1bfca8c 100644
--- 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
@@ -22,7 +22,6 @@ import org.thingsboard.server.dao.model.ToData;
import javax.persistence.*;
import java.io.Serializable;
-import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
@@ -39,7 +38,7 @@ public class AttributeKvEntity implements ToData, Serializable
@Id
@Column(name = ENTITY_ID_COLUMN)
- private UUID entityId;
+ private String entityId;
@Id
@Column(name = ATTRIBUTE_TYPE_COLUMN)
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/ComponentDescriptorEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/ComponentDescriptorEntity.java
index 67c94dafee..bfb2d2256b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/ComponentDescriptorEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/ComponentDescriptorEntity.java
@@ -17,32 +17,30 @@ package org.thingsboard.server.dao.model.sql;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.id.ComponentDescriptorId;
import org.thingsboard.server.common.data.plugin.ComponentDescriptor;
import org.thingsboard.server.common.data.plugin.ComponentScope;
import org.thingsboard.server.common.data.plugin.ComponentType;
+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.*;
-import java.util.UUID;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ModelConstants.COMPONENT_DESCRIPTOR_COLUMN_FAMILY_NAME)
-public class ComponentDescriptorEntity implements SearchTextEntity {
+public class ComponentDescriptorEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = 253590350877992402L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Enumerated(EnumType.STRING)
@Column(name = ModelConstants.COMPONENT_DESCRIPTOR_TYPE_PROPERTY)
private ComponentType type;
@@ -72,7 +70,7 @@ public class ComponentDescriptorEntity implements SearchTextEntity {
+public final class CustomerEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = 8951342124082981556L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.CUSTOMER_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.CUSTOMER_TITLE_PROPERTY)
private String title;
@@ -86,9 +88,9 @@ public final class CustomerEntity implements SearchTextEntity {
public CustomerEntity(Customer customer) {
if (customer.getId() != null) {
- this.id = customer.getId().getId();
+ this.setId(customer.getId().getId());
}
- this.tenantId = customer.getTenantId().getId();
+ this.tenantId = UUIDConverter.fromTimeUUID(customer.getTenantId().getId());
this.title = customer.getTitle();
this.country = customer.getCountry();
this.state = customer.getState();
@@ -101,16 +103,6 @@ public final class CustomerEntity implements SearchTextEntity {
this.additionalInfo = customer.getAdditionalInfo();
}
- @Override
- public UUID getId() {
- return id;
- }
-
- @Override
- public void setId(UUID id) {
- this.id = id;
- }
-
@Override
public String getSearchTextSource() {
return title;
@@ -123,9 +115,9 @@ public final class CustomerEntity implements SearchTextEntity {
@Override
public Customer toData() {
- Customer customer = new Customer(new CustomerId(id));
- customer.setCreatedTime(UUIDs.unixTimestamp(id));
- customer.setTenantId(new TenantId(tenantId));
+ Customer customer = new Customer(new CustomerId(getId()));
+ customer.setCreatedTime(UUIDs.unixTimestamp(getId()));
+ customer.setTenantId(new TenantId(UUIDConverter.fromString(tenantId)));
customer.setTitle(title);
customer.setCountry(country);
customer.setState(state);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/DashboardEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/DashboardEntity.java
index 6f7f8c649b..9d5131d4b0 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/DashboardEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/DashboardEntity.java
@@ -18,37 +18,38 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.Dashboard;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.TenantId;
+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.*;
-import java.util.UUID;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME)
-public final class DashboardEntity implements SearchTextEntity {
+public final class DashboardEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = -4838084363113078898L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.DASHBOARD_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.DASHBOARD_CUSTOMER_ID_PROPERTY)
- private UUID customerId;
+ private String customerId;
@Column(name = ModelConstants.DASHBOARD_TITLE_PROPERTY)
private String title;
@@ -66,13 +67,13 @@ public final class DashboardEntity implements SearchTextEntity {
public DashboardEntity(Dashboard dashboard) {
if (dashboard.getId() != null) {
- this.id = dashboard.getId().getId();
+ this.setId(dashboard.getId().getId());
}
if (dashboard.getTenantId() != null) {
- this.tenantId = dashboard.getTenantId().getId();
+ this.tenantId = toString(dashboard.getTenantId().getId());
}
if (dashboard.getCustomerId() != null) {
- this.customerId = dashboard.getCustomerId().getId();
+ this.customerId = toString(dashboard.getCustomerId().getId());
}
this.title = dashboard.getTitle();
this.configuration = dashboard.getConfiguration();
@@ -90,13 +91,13 @@ public final class DashboardEntity implements SearchTextEntity {
@Override
public Dashboard toData() {
- Dashboard dashboard = new Dashboard(new DashboardId(id));
- dashboard.setCreatedTime(UUIDs.unixTimestamp(id));
+ Dashboard dashboard = new Dashboard(new DashboardId(this.getId()));
+ dashboard.setCreatedTime(UUIDs.unixTimestamp(this.getId()));
if (tenantId != null) {
- dashboard.setTenantId(new TenantId(tenantId));
+ dashboard.setTenantId(new TenantId(toUUID(tenantId)));
}
if (customerId != null) {
- dashboard.setCustomerId(new CustomerId(customerId));
+ dashboard.setCustomerId(new CustomerId(toUUID(customerId)));
}
dashboard.setTitle(title);
dashboard.setConfiguration(configuration);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/DashboardInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/DashboardInfoEntity.java
index 024c05be63..34befcef8d 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/DashboardInfoEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/DashboardInfoEntity.java
@@ -17,33 +17,34 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.DashboardInfo;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.TenantId;
+import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
-import javax.persistence.*;
-import java.util.UUID;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME)
-public class DashboardInfoEntity implements SearchTextEntity {
+public class DashboardInfoEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = -5525675905528050250L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.DASHBOARD_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.DASHBOARD_CUSTOMER_ID_PROPERTY)
- private UUID customerId;
+ private String customerId;
@Column(name = ModelConstants.DASHBOARD_TITLE_PROPERTY)
private String title;
@@ -57,13 +58,13 @@ public class DashboardInfoEntity implements SearchTextEntity {
public DashboardInfoEntity(DashboardInfo dashboardInfo) {
if (dashboardInfo.getId() != null) {
- this.id = dashboardInfo.getId().getId();
+ this.setId(dashboardInfo.getId().getId());
}
if (dashboardInfo.getTenantId() != null) {
- this.tenantId = dashboardInfo.getTenantId().getId();
+ this.tenantId = toString(dashboardInfo.getTenantId().getId());
}
if (dashboardInfo.getCustomerId() != null) {
- this.customerId = dashboardInfo.getCustomerId().getId();
+ this.customerId = toString(dashboardInfo.getCustomerId().getId());
}
this.title = dashboardInfo.getTitle();
}
@@ -84,13 +85,13 @@ public class DashboardInfoEntity implements SearchTextEntity {
@Override
public DashboardInfo toData() {
- DashboardInfo dashboardInfo = new DashboardInfo(new DashboardId(id));
- dashboardInfo.setCreatedTime(UUIDs.unixTimestamp(id));
+ DashboardInfo dashboardInfo = new DashboardInfo(new DashboardId(getId()));
+ dashboardInfo.setCreatedTime(UUIDs.unixTimestamp(getId()));
if (tenantId != null) {
- dashboardInfo.setTenantId(new TenantId(tenantId));
+ dashboardInfo.setTenantId(new TenantId(toUUID(tenantId)));
}
if (customerId != null) {
- dashboardInfo.setCustomerId(new CustomerId(customerId));
+ dashboardInfo.setCustomerId(new CustomerId(toUUID(customerId)));
}
dashboardInfo.setTitle(title);
return dashboardInfo;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/DeviceCredentialsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/DeviceCredentialsEntity.java
index cc36fc0159..d6cf83c63b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/DeviceCredentialsEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/DeviceCredentialsEntity.java
@@ -17,29 +17,28 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.id.DeviceCredentialsId;
import org.thingsboard.server.common.data.id.DeviceId;
import org.thingsboard.server.common.data.security.DeviceCredentials;
import org.thingsboard.server.common.data.security.DeviceCredentialsType;
import org.thingsboard.server.dao.model.BaseEntity;
+import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.ModelConstants;
import javax.persistence.*;
-import java.util.UUID;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = ModelConstants.DEVICE_CREDENTIALS_COLUMN_FAMILY_NAME)
-public final class DeviceCredentialsEntity implements BaseEntity {
+public final class DeviceCredentialsEntity extends BaseSqlEntity implements BaseEntity {
@Transient
private static final long serialVersionUID = -2512362753385470464L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
+
@Column(name = ModelConstants.DEVICE_CREDENTIALS_DEVICE_ID_PROPERTY)
- private UUID deviceId;
+ private String deviceId;
@Enumerated(EnumType.STRING)
@Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_TYPE_PROPERTY)
@@ -57,22 +56,22 @@ public final class DeviceCredentialsEntity implements BaseEntity {
+public final class DeviceEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = 8050086401213322856L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.DEVICE_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.DEVICE_CUSTOMER_ID_PROPERTY)
- private UUID customerId;
+ private String customerId;
@Column(name = ModelConstants.DEVICE_TYPE_PROPERTY)
private String type;
@Column(name = ModelConstants.DEVICE_NAME_PROPERTY)
private String name;
-
+
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
private String searchText;
@@ -69,13 +70,13 @@ public final class DeviceEntity implements SearchTextEntity {
public DeviceEntity(Device device) {
if (device.getId() != null) {
- this.id = device.getId().getId();
+ this.setId(device.getId().getId());
}
if (device.getTenantId() != null) {
- this.tenantId = device.getTenantId().getId();
+ this.tenantId = toString(device.getTenantId().getId());
}
if (device.getCustomerId() != null) {
- this.customerId = device.getCustomerId().getId();
+ this.customerId = toString(device.getCustomerId().getId());
}
this.name = device.getName();
this.type = device.getType();
@@ -91,16 +92,16 @@ public final class DeviceEntity implements SearchTextEntity {
public void setSearchText(String searchText) {
this.searchText = searchText;
}
-
+
@Override
public Device toData() {
- Device device = new Device(new DeviceId(id));
- device.setCreatedTime(UUIDs.unixTimestamp(id));
+ Device device = new Device(new DeviceId(getId()));
+ device.setCreatedTime(UUIDs.unixTimestamp(getId()));
if (tenantId != null) {
- device.setTenantId(new TenantId(tenantId));
+ device.setTenantId(new TenantId(toUUID(tenantId)));
}
if (customerId != null) {
- device.setCustomerId(new CustomerId(customerId));
+ device.setCustomerId(new CustomerId(toUUID(customerId)));
}
device.setName(name);
device.setType(type);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/EventEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/EventEntity.java
index 1ed365dfa3..4dbc571e24 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/EventEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/EventEntity.java
@@ -18,43 +18,43 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.Event;
-import org.thingsboard.server.common.data.id.*;
+import org.thingsboard.server.common.data.id.EntityIdFactory;
+import org.thingsboard.server.common.data.id.EventId;
+import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.dao.model.BaseEntity;
+import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.util.mapping.JsonStringType;
import javax.persistence.*;
-import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = EVENT_COLUMN_FAMILY_NAME)
@NoArgsConstructor
-public class EventEntity implements BaseEntity {
+public class EventEntity extends BaseSqlEntity implements BaseEntity {
@Transient
private static final long serialVersionUID = -5717830061727466727L;
- @Id
- @Column(name = ID_PROPERTY)
- private UUID id;
-
@Column(name = EVENT_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Enumerated(EnumType.STRING)
@Column(name = EVENT_ENTITY_TYPE_PROPERTY)
private EntityType entityType;
@Column(name = EVENT_ENTITY_ID_PROPERTY)
- private UUID entityId;
+ private String entityId;
@Column(name = EVENT_TYPE_PROPERTY)
private String eventType;
@@ -68,52 +68,27 @@ public class EventEntity implements BaseEntity {
public EventEntity(Event event) {
if (event.getId() != null) {
- this.id = event.getId().getId();
+ this.setId(event.getId().getId());
}
if (event.getTenantId() != null) {
- this.tenantId = event.getTenantId().getId();
+ this.tenantId = toString(event.getTenantId().getId());
}
if (event.getEntityId() != null) {
this.entityType = event.getEntityId().getEntityType();
- this.entityId = event.getEntityId().getId();
+ this.entityId = toString(event.getEntityId().getId());
}
this.eventType = event.getType();
this.eventUid = event.getUid();
this.body = event.getBody();
}
- @Override
- public UUID getId() {
- return id;
- }
-
- @Override
- public void setId(UUID id) {
- this.id = id;
- }
@Override
public Event toData() {
- Event event = new Event(new EventId(id));
- event.setCreatedTime(UUIDs.unixTimestamp(id));
- event.setTenantId(new TenantId(tenantId));
- switch (entityType) {
- case TENANT:
- event.setEntityId(new TenantId(entityId));
- break;
- case DEVICE:
- event.setEntityId(new DeviceId(entityId));
- break;
- case CUSTOMER:
- event.setEntityId(new CustomerId(entityId));
- break;
- case RULE:
- event.setEntityId(new RuleId(entityId));
- break;
- case PLUGIN:
- event.setEntityId(new PluginId(entityId));
- break;
- }
+ Event event = new Event(new EventId(getId()));
+ event.setCreatedTime(UUIDs.unixTimestamp(getId()));
+ event.setTenantId(new TenantId(toUUID(tenantId)));
+ event.setEntityId(EntityIdFactory.getByTypeAndUuid(entityType, toUUID(entityId)));
event.setBody(body);
event.setType(eventType);
event.setUid(eventUid);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/PluginMetaDataEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/PluginMetaDataEntity.java
index d8b42b9e68..992c802e82 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/PluginMetaDataEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/PluginMetaDataEntity.java
@@ -18,36 +18,38 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.id.PluginId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.plugin.ComponentLifecycleState;
import org.thingsboard.server.common.data.plugin.PluginMetaData;
+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.*;
-import java.util.UUID;
+
+import static org.thingsboard.server.common.data.UUIDConverter.fromString;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUID;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ModelConstants.PLUGIN_COLUMN_FAMILY_NAME)
-public class PluginMetaDataEntity implements SearchTextEntity {
+public class PluginMetaDataEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = -6164321050824823149L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
@Column(name = ModelConstants.PLUGIN_API_TOKEN_PROPERTY)
private String apiToken;
@Column(name = ModelConstants.PLUGIN_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.PLUGIN_NAME_PROPERTY)
private String name;
@@ -78,9 +80,9 @@ public class PluginMetaDataEntity implements SearchTextEntity {
public PluginMetaDataEntity(PluginMetaData pluginMetaData) {
if (pluginMetaData.getId() != null) {
- this.id = pluginMetaData.getId().getId();
+ this.setId(pluginMetaData.getId().getId());
}
- this.tenantId = pluginMetaData.getTenantId().getId();
+ this.tenantId = fromTimeUUID(pluginMetaData.getTenantId().getId());
this.apiToken = pluginMetaData.getApiToken();
this.clazz = pluginMetaData.getClazz();
this.name = pluginMetaData.getName();
@@ -101,21 +103,11 @@ public class PluginMetaDataEntity implements SearchTextEntity {
this.searchText = searchText;
}
- @Override
- public UUID getId() {
- return id;
- }
-
- @Override
- public void setId(UUID id) {
- this.id = id;
- }
-
@Override
public PluginMetaData toData() {
- PluginMetaData data = new PluginMetaData(new PluginId(id));
- data.setTenantId(new TenantId(tenantId));
- data.setCreatedTime(UUIDs.unixTimestamp(id));
+ PluginMetaData data = new PluginMetaData(new PluginId(getId()));
+ data.setTenantId(new TenantId(fromString(tenantId)));
+ data.setCreatedTime(UUIDs.unixTimestamp(getId()));
data.setName(name);
data.setClazz(clazz);
data.setPublicAccess(publicAccess);
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 21e6635be8..2e8699a8ee 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
@@ -18,11 +18,11 @@ package org.thingsboard.server.dao.model.sql;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.relation.EntityRelation;
import javax.persistence.Transient;
import java.io.Serializable;
-import java.util.UUID;
@NoArgsConstructor
@AllArgsConstructor
@@ -32,17 +32,17 @@ public class RelationCompositeKey implements Serializable {
@Transient
private static final long serialVersionUID = -4089175869616037592L;
- private UUID fromId;
+ private String fromId;
private String fromType;
- private UUID toId;
+ private String toId;
private String toType;
private String relationType;
private String relationTypeGroup;
public RelationCompositeKey(EntityRelation relation) {
- this.fromId = relation.getFrom().getId();
+ this.fromId = UUIDConverter.fromTimeUUID(relation.getFrom().getId());
this.fromType = relation.getFrom().getEntityType().name();
- this.toId = relation.getTo().getId();
+ this.toId = UUIDConverter.fromTimeUUID(relation.getTo().getId());
this.toType = relation.getTo().getEntityType().name();
this.relationType = relation.getType();
this.relationTypeGroup = relation.getTypeGroup().name();
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationEntity.java
index b31d45aebc..498f6fbba2 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationEntity.java
@@ -19,6 +19,7 @@ import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.EntityIdFactory;
import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
@@ -26,7 +27,6 @@ import org.thingsboard.server.dao.model.ToData;
import org.thingsboard.server.dao.util.mapping.JsonStringType;
import javax.persistence.*;
-import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
@@ -39,7 +39,7 @@ public final class RelationEntity implements ToData {
@Id
@Column(name = RELATION_FROM_ID_PROPERTY)
- private UUID fromId;
+ private String fromId;
@Id
@Column(name = RELATION_FROM_TYPE_PROPERTY)
@@ -47,7 +47,7 @@ public final class RelationEntity implements ToData {
@Id
@Column(name = RELATION_TO_ID_PROPERTY)
- private UUID toId;
+ private String toId;
@Id
@Column(name = RELATION_TO_TYPE_PROPERTY)
@@ -71,11 +71,11 @@ public final class RelationEntity implements ToData {
public RelationEntity(EntityRelation relation) {
if (relation.getTo() != null) {
- this.toId = relation.getTo().getId();
+ this.toId = UUIDConverter.fromTimeUUID(relation.getTo().getId());
this.toType = relation.getTo().getEntityType().name();
}
if (relation.getFrom() != null) {
- this.fromId = relation.getFrom().getId();
+ this.fromId = UUIDConverter.fromTimeUUID(relation.getFrom().getId());
this.fromType = relation.getFrom().getEntityType().name();
}
this.relationType = relation.getType();
@@ -87,10 +87,10 @@ public final class RelationEntity implements ToData {
public EntityRelation toData() {
EntityRelation relation = new EntityRelation();
if (toId != null && toType != null) {
- relation.setTo(EntityIdFactory.getByTypeAndUuid(toType, toId));
+ relation.setTo(EntityIdFactory.getByTypeAndUuid(toType, UUIDConverter.fromString(toId)));
}
if (fromId != null && fromType != null) {
- relation.setFrom(EntityIdFactory.getByTypeAndUuid(fromType, fromId));
+ relation.setFrom(EntityIdFactory.getByTypeAndUuid(fromType, UUIDConverter.fromString(fromId)));
}
relation.setType(relationType);
relation.setTypeGroup(RelationTypeGroup.valueOf(relationTypeGroup));
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleMetaDataEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleMetaDataEntity.java
index 6f768b1172..76b5e65a44 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleMetaDataEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleMetaDataEntity.java
@@ -18,6 +18,7 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.id.RuleId;
@@ -25,27 +26,25 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.plugin.ComponentLifecycleState;
import org.thingsboard.server.common.data.rule.RuleMetaData;
import org.thingsboard.server.dao.DaoUtil;
+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.*;
-import java.util.UUID;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ModelConstants.RULE_COLUMN_FAMILY_NAME)
-public class RuleMetaDataEntity implements SearchTextEntity {
+public class RuleMetaDataEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = -1506905644259463884L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
@Column(name = ModelConstants.RULE_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.RULE_NAME_PROPERTY)
private String name;
@@ -84,9 +83,9 @@ public class RuleMetaDataEntity implements SearchTextEntity {
public RuleMetaDataEntity(RuleMetaData rule) {
if (rule.getId() != null) {
- this.id = rule.getUuidId();
+ this.setId(rule.getUuidId());
}
- this.tenantId = DaoUtil.getId(rule.getTenantId());
+ this.tenantId = toString(DaoUtil.getId(rule.getTenantId()));
this.name = rule.getName();
this.pluginToken = rule.getPluginToken();
this.state = rule.getState();
@@ -108,24 +107,14 @@ public class RuleMetaDataEntity implements SearchTextEntity {
this.searchText = searchText;
}
- @Override
- public UUID getId() {
- return id;
- }
-
- @Override
- public void setId(UUID id) {
- this.id = id;
- }
-
@Override
public RuleMetaData toData() {
- RuleMetaData rule = new RuleMetaData(new RuleId(id));
- rule.setTenantId(new TenantId(tenantId));
+ RuleMetaData rule = new RuleMetaData(new RuleId(getId()));
+ rule.setTenantId(new TenantId(toUUID(tenantId)));
rule.setName(name);
rule.setState(state);
rule.setWeight(weight);
- rule.setCreatedTime(UUIDs.unixTimestamp(id));
+ rule.setCreatedTime(UUIDs.unixTimestamp(getId()));
rule.setPluginToken(pluginToken);
rule.setFilters(filters);
rule.setProcessor(processor);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TenantDeviceTypeEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TenantDeviceTypeEntity.java
index 3b717505cc..a4f7256719 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TenantDeviceTypeEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TenantDeviceTypeEntity.java
@@ -18,11 +18,9 @@ package org.thingsboard.server.dao.model.sql;
import lombok.AllArgsConstructor;
import lombok.Data;
-import java.util.UUID;
-
@AllArgsConstructor
@Data
public class TenantDeviceTypeEntity {
- private UUID tenantId;
+ private String tenantId;
private String type;
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TenantEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TenantEntity.java
index 633e5e5fa8..2ddfc8e4a5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TenantEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TenantEntity.java
@@ -18,30 +18,31 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.id.TenantId;
+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.*;
-import java.util.UUID;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ModelConstants.TENANT_COLUMN_FAMILY_NAME)
-public final class TenantEntity implements SearchTextEntity {
+public final class TenantEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = -4330655990232136337L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.TENANT_TITLE_PROPERTY)
private String title;
@@ -75,7 +76,7 @@ public final class TenantEntity implements SearchTextEntity {
@Column(name = ModelConstants.EMAIL_PROPERTY)
private String email;
- @Type(type="json")
+ @Type(type = "json")
@Column(name = ModelConstants.TENANT_ADDITIONAL_INFO_PROPERTY)
private JsonNode additionalInfo;
@@ -85,7 +86,7 @@ public final class TenantEntity implements SearchTextEntity {
public TenantEntity(Tenant tenant) {
if (tenant.getId() != null) {
- this.id = tenant.getId().getId();
+ this.setId(tenant.getId().getId());
}
this.title = tenant.getTitle();
this.region = tenant.getRegion();
@@ -116,8 +117,8 @@ public final class TenantEntity implements SearchTextEntity {
@Override
public Tenant toData() {
- Tenant tenant = new Tenant(new TenantId(id));
- tenant.setCreatedTime(UUIDs.unixTimestamp(id));
+ Tenant tenant = new Tenant(new TenantId(getId()));
+ tenant.setCreatedTime(UUIDs.unixTimestamp(getId()));
tenant.setTitle(title);
tenant.setRegion(region);
tenant.setCountry(country);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvCompositeKey.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvCompositeKey.java
index 57df750f79..795998a72a 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvCompositeKey.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvCompositeKey.java
@@ -22,18 +22,17 @@ import org.thingsboard.server.common.data.EntityType;
import javax.persistence.Transient;
import java.io.Serializable;
-import java.util.UUID;
@Data
@AllArgsConstructor
@NoArgsConstructor
-public class TsKvCompositeKey implements Serializable{
+public class TsKvCompositeKey implements Serializable {
@Transient
private static final long serialVersionUID = -4089175869616037523L;
private EntityType entityType;
- private UUID entityId;
+ private String entityId;
private String key;
private long ts;
}
\ No newline at end of file
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvEntity.java
index 356f3bd4a3..c5739f18fe 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvEntity.java
@@ -21,7 +21,6 @@ import org.thingsboard.server.common.data.kv.*;
import org.thingsboard.server.dao.model.ToData;
import javax.persistence.*;
-import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
@@ -69,7 +68,7 @@ public final class TsKvEntity implements ToData {
@Id
@Column(name = ENTITY_ID_COLUMN)
- private UUID entityId;
+ private String entityId;
@Id
@Column(name = KEY_COLUMN)
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestCompositeKey.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestCompositeKey.java
index f7bf3b1281..c2001d8fb9 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestCompositeKey.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestCompositeKey.java
@@ -15,12 +15,13 @@
*/
package org.thingsboard.server.dao.model.sql;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
import org.thingsboard.server.common.data.EntityType;
import javax.persistence.Transient;
import java.io.Serializable;
-import java.util.UUID;
@Data
@NoArgsConstructor
@@ -31,6 +32,6 @@ public class TsKvLatestCompositeKey implements Serializable{
private static final long serialVersionUID = -4089175869616037523L;
private EntityType entityType;
- private UUID entityId;
+ private String entityId;
private String key;
}
\ No newline at end of file
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestEntity.java
index 47a5e006f7..943e061325 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestEntity.java
@@ -21,7 +21,6 @@ import org.thingsboard.server.common.data.kv.*;
import org.thingsboard.server.dao.model.ToData;
import javax.persistence.*;
-import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.*;
@@ -31,6 +30,8 @@ import static org.thingsboard.server.dao.model.ModelConstants.*;
@IdClass(TsKvLatestCompositeKey.class)
public final class TsKvLatestEntity implements ToData {
+
+ //TODO: reafctor this and TsKvEntity to avoid code duplicates
@Id
@Enumerated(EnumType.STRING)
@Column(name = ENTITY_TYPE_COLUMN)
@@ -38,7 +39,7 @@ public final class TsKvLatestEntity implements ToData {
@Id
@Column(name = ENTITY_ID_COLUMN)
- private UUID entityId;
+ private String entityId;
@Id
@Column(name = KEY_COLUMN)
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserCredentialsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserCredentialsEntity.java
index 999b78b41b..7f4ff0b429 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserCredentialsEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserCredentialsEntity.java
@@ -17,29 +17,30 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.id.UserCredentialsId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.security.UserCredentials;
import org.thingsboard.server.dao.model.BaseEntity;
+import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.ModelConstants;
-import javax.persistence.*;
-import java.util.UUID;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = ModelConstants.USER_CREDENTIALS_COLUMN_FAMILY_NAME)
-public final class UserCredentialsEntity implements BaseEntity {
+public final class UserCredentialsEntity extends BaseSqlEntity implements BaseEntity {
@Transient
private static final long serialVersionUID = -3989724854149114846L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.USER_CREDENTIALS_USER_ID_PROPERTY, unique = true)
- private UUID userId;
+ private String userId;
@Column(name = ModelConstants.USER_CREDENTIALS_ENABLED_PROPERTY)
private boolean enabled;
@@ -59,10 +60,10 @@ public final class UserCredentialsEntity implements BaseEntity
public UserCredentialsEntity(UserCredentials userCredentials) {
if (userCredentials.getId() != null) {
- this.id = userCredentials.getId().getId();
+ this.setId(userCredentials.getId().getId());
}
if (userCredentials.getUserId() != null) {
- this.userId = userCredentials.getUserId().getId();
+ this.userId = toString(userCredentials.getUserId().getId());
}
this.enabled = userCredentials.isEnabled();
this.password = userCredentials.getPassword();
@@ -72,10 +73,10 @@ public final class UserCredentialsEntity implements BaseEntity
@Override
public UserCredentials toData() {
- UserCredentials userCredentials = new UserCredentials(new UserCredentialsId(id));
- userCredentials.setCreatedTime(UUIDs.unixTimestamp(id));
+ UserCredentials userCredentials = new UserCredentials(new UserCredentialsId(getId()));
+ userCredentials.setCreatedTime(UUIDs.unixTimestamp(getId()));
if (userId != null) {
- userCredentials.setUserId(new UserId(userId));
+ userCredentials.setUserId(new UserId(toUUID(userId)));
}
userCredentials.setEnabled(enabled);
userCredentials.setPassword(password);
@@ -84,13 +85,4 @@ public final class UserCredentialsEntity implements BaseEntity
return userCredentials;
}
- @Override
- public UUID getId() {
- return id;
- }
-
- @Override
- public void setId(UUID id) {
- this.id = id;
- }
}
\ No newline at end of file
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserEntity.java
index dbedffd573..b2358fa8b6 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/UserEntity.java
@@ -18,6 +18,7 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.User;
@@ -25,33 +26,33 @@ import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.security.Authority;
+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.*;
-import java.util.UUID;
+
+import static org.thingsboard.server.common.data.UUIDConverter.fromString;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUID;
/**
* Created by Valerii Sosliuk on 4/21/2017.
*/
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ModelConstants.USER_PG_HIBERNATE_COLUMN_FAMILY_NAME)
-public class UserEntity implements SearchTextEntity {
+public class UserEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = -271106508790582977L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.USER_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.USER_CUSTOMER_ID_PROPERTY)
- private UUID customerId;
+ private String customerId;
@Enumerated(EnumType.STRING)
@Column(name = ModelConstants.USER_AUTHORITY_PROPERTY)
@@ -69,7 +70,7 @@ public class UserEntity implements SearchTextEntity {
@Column(name = ModelConstants.USER_LAST_NAME_PROPERTY)
private String lastName;
- @Type(type="json")
+ @Type(type = "json")
@Column(name = ModelConstants.USER_ADDITIONAL_INFO_PROPERTY)
private JsonNode additionalInfo;
@@ -78,14 +79,14 @@ public class UserEntity implements SearchTextEntity {
public UserEntity(User user) {
if (user.getId() != null) {
- this.id = user.getId().getId();
+ this.setId(user.getId().getId());
}
this.authority = user.getAuthority();
if (user.getTenantId() != null) {
- this.tenantId = user.getTenantId().getId();
+ this.tenantId = fromTimeUUID(user.getTenantId().getId());
}
if (user.getCustomerId() != null) {
- this.customerId = user.getCustomerId().getId();
+ this.customerId = fromTimeUUID(user.getCustomerId().getId());
}
this.email = user.getEmail();
this.firstName = user.getFirstName();
@@ -103,26 +104,16 @@ public class UserEntity implements SearchTextEntity {
this.searchText = searchText;
}
- @Override
- public UUID getId() {
- return id;
- }
-
- @Override
- public void setId(UUID id) {
- this.id = id;
- }
-
@Override
public User toData() {
- User user = new User(new UserId(id));
- user.setCreatedTime(UUIDs.unixTimestamp(id));
+ User user = new User(new UserId(getId()));
+ user.setCreatedTime(UUIDs.unixTimestamp(getId()));
user.setAuthority(authority);
if (tenantId != null) {
- user.setTenantId(new TenantId(tenantId));
+ user.setTenantId(new TenantId(fromString(tenantId)));
}
if (customerId != null) {
- user.setCustomerId(new CustomerId(customerId));
+ user.setCustomerId(new CustomerId(fromString(customerId)));
}
user.setEmail(email);
user.setFirstName(firstName);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeEntity.java
index 0e09123915..15e6549fc2 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeEntity.java
@@ -18,33 +18,34 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import com.fasterxml.jackson.databind.JsonNode;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.WidgetTypeId;
import org.thingsboard.server.common.data.widget.WidgetType;
import org.thingsboard.server.dao.model.BaseEntity;
+import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.util.mapping.JsonStringType;
-import javax.persistence.*;
-import java.util.UUID;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
@Table(name = ModelConstants.WIDGET_TYPE_COLUMN_FAMILY_NAME)
-public final class WidgetTypeEntity implements BaseEntity {
+public final class WidgetTypeEntity extends BaseSqlEntity implements BaseEntity {
@Transient
private static final long serialVersionUID = -5436279069884988630L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.WIDGET_TYPE_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.WIDGET_TYPE_BUNDLE_ALIAS_PROPERTY)
private String bundleAlias;
@@ -65,10 +66,10 @@ public final class WidgetTypeEntity implements BaseEntity {
public WidgetTypeEntity(WidgetType widgetType) {
if (widgetType.getId() != null) {
- this.id = widgetType.getId().getId();
+ this.setId(widgetType.getId().getId());
}
if (widgetType.getTenantId() != null) {
- this.tenantId = widgetType.getTenantId().getId();
+ this.tenantId = toString(widgetType.getTenantId().getId());
}
this.bundleAlias = widgetType.getBundleAlias();
this.alias = widgetType.getAlias();
@@ -76,22 +77,12 @@ public final class WidgetTypeEntity implements BaseEntity {
this.descriptor = widgetType.getDescriptor();
}
- @Override
- public UUID getId() {
- return id;
- }
-
- @Override
- public void setId(UUID id) {
- this.id = id;
- }
-
@Override
public WidgetType toData() {
- WidgetType widgetType = new WidgetType(new WidgetTypeId(id));
- widgetType.setCreatedTime(UUIDs.unixTimestamp(id));
+ WidgetType widgetType = new WidgetType(new WidgetTypeId(getId()));
+ widgetType.setCreatedTime(UUIDs.unixTimestamp(getId()));
if (tenantId != null) {
- widgetType.setTenantId(new TenantId(tenantId));
+ widgetType.setTenantId(new TenantId(toUUID(tenantId)));
}
widgetType.setBundleAlias(bundleAlias);
widgetType.setAlias(alias);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetsBundleEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetsBundleEntity.java
index c7d62d8037..4cc0fc65c6 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetsBundleEntity.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetsBundleEntity.java
@@ -18,29 +18,31 @@ package org.thingsboard.server.dao.model.sql;
import com.datastax.driver.core.utils.UUIDs;
import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.id.WidgetsBundleId;
import org.thingsboard.server.common.data.widget.WidgetsBundle;
+import org.thingsboard.server.dao.model.BaseSqlEntity;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.SearchTextEntity;
-import javax.persistence.*;
-import java.util.UUID;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.Transient;
@Data
+@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = ModelConstants.WIDGETS_BUNDLE_COLUMN_FAMILY_NAME)
-public final class WidgetsBundleEntity implements SearchTextEntity {
+public final class WidgetsBundleEntity extends BaseSqlEntity implements SearchTextEntity {
@Transient
private static final long serialVersionUID = 6897035686422298096L;
- @Id
- @Column(name = ModelConstants.ID_PROPERTY)
- private UUID id;
-
@Column(name = ModelConstants.WIDGETS_BUNDLE_TENANT_ID_PROPERTY)
- private UUID tenantId;
+ private String tenantId;
@Column(name = ModelConstants.WIDGETS_BUNDLE_ALIAS_PROPERTY)
private String alias;
@@ -57,25 +59,15 @@ public final class WidgetsBundleEntity implements SearchTextEntity {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/type/AuthorityCodec.java b/dao/src/main/java/org/thingsboard/server/dao/model/type/AuthorityCodec.java
index 3f867aae22..97cfca34ca 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/type/AuthorityCodec.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/type/AuthorityCodec.java
@@ -15,9 +15,8 @@
*/
package org.thingsboard.server.dao.model.type;
-import org.thingsboard.server.common.data.security.Authority;
-
import com.datastax.driver.extras.codecs.enums.EnumNameCodec;
+import org.thingsboard.server.common.data.security.Authority;
public class AuthorityCodec extends EnumNameCodec {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentLifecycleStateCodec.java b/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentLifecycleStateCodec.java
index 09b3fd4810..34d8157eee 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentLifecycleStateCodec.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentLifecycleStateCodec.java
@@ -17,7 +17,6 @@ package org.thingsboard.server.dao.model.type;
import com.datastax.driver.extras.codecs.enums.EnumNameCodec;
import org.thingsboard.server.common.data.plugin.ComponentLifecycleState;
-import org.thingsboard.server.common.data.security.Authority;
public class ComponentLifecycleStateCodec extends EnumNameCodec {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentScopeCodec.java b/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentScopeCodec.java
index 25bdc06e91..343d9b8e38 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentScopeCodec.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentScopeCodec.java
@@ -17,7 +17,6 @@ package org.thingsboard.server.dao.model.type;
import com.datastax.driver.extras.codecs.enums.EnumNameCodec;
import org.thingsboard.server.common.data.plugin.ComponentScope;
-import org.thingsboard.server.common.data.plugin.ComponentType;
public class ComponentScopeCodec extends EnumNameCodec {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentTypeCodec.java b/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentTypeCodec.java
index 65f7d1d0f1..e52111fdfd 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentTypeCodec.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/type/ComponentTypeCodec.java
@@ -16,7 +16,6 @@
package org.thingsboard.server.dao.model.type;
import com.datastax.driver.extras.codecs.enums.EnumNameCodec;
-import org.thingsboard.server.common.data.plugin.ComponentLifecycleState;
import org.thingsboard.server.common.data.plugin.ComponentType;
public class ComponentTypeCodec extends EnumNameCodec {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/type/DeviceCredentialsTypeCodec.java b/dao/src/main/java/org/thingsboard/server/dao/model/type/DeviceCredentialsTypeCodec.java
index e9eb88646d..e5ece8af56 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/type/DeviceCredentialsTypeCodec.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/type/DeviceCredentialsTypeCodec.java
@@ -15,9 +15,8 @@
*/
package org.thingsboard.server.dao.model.type;
-import org.thingsboard.server.common.data.security.DeviceCredentialsType;
-
import com.datastax.driver.extras.codecs.enums.EnumNameCodec;
+import org.thingsboard.server.common.data.security.DeviceCredentialsType;
public class DeviceCredentialsTypeCodec extends EnumNameCodec {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/type/EntityTypeCodec.java b/dao/src/main/java/org/thingsboard/server/dao/model/type/EntityTypeCodec.java
index 8212e4bc2f..f9559e901b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/type/EntityTypeCodec.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/type/EntityTypeCodec.java
@@ -17,7 +17,6 @@ package org.thingsboard.server.dao.model.type;
import com.datastax.driver.extras.codecs.enums.EnumNameCodec;
import org.thingsboard.server.common.data.EntityType;
-import org.thingsboard.server.common.data.plugin.ComponentType;
public class EntityTypeCodec extends EnumNameCodec {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/type/RelationTypeGroupCodec.java b/dao/src/main/java/org/thingsboard/server/dao/model/type/RelationTypeGroupCodec.java
index 1c0514e2f1..a618da5a83 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/model/type/RelationTypeGroupCodec.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/model/type/RelationTypeGroupCodec.java
@@ -15,9 +15,8 @@
*/
package org.thingsboard.server.dao.model.type;
-import org.thingsboard.server.common.data.relation.RelationTypeGroup;
-
import com.datastax.driver.extras.codecs.enums.EnumNameCodec;
+import org.thingsboard.server.common.data.relation.RelationTypeGroup;
public class RelationTypeGroupCodec extends EnumNameCodec {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/plugin/CassandraBasePluginDao.java b/dao/src/main/java/org/thingsboard/server/dao/plugin/CassandraBasePluginDao.java
index 991751e69e..1ff2f22c80 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/plugin/CassandraBasePluginDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/plugin/CassandraBasePluginDao.java
@@ -22,11 +22,11 @@ import org.thingsboard.server.common.data.id.PluginId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.common.data.plugin.PluginMetaData;
-import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.nosql.PluginMetaDataEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import java.util.Arrays;
import java.util.List;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationDao.java b/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationDao.java
index 195a9d9c0c..0bf8c8c2ca 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/relation/BaseRelationDao.java
@@ -28,11 +28,11 @@ import org.thingsboard.server.common.data.id.EntityIdFactory;
import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
+import org.thingsboard.server.dao.model.ModelConstants;
+import org.thingsboard.server.dao.model.type.RelationTypeGroupCodec;
import org.thingsboard.server.dao.nosql.CassandraAbstractAsyncDao;
import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTimeDao;
import org.thingsboard.server.dao.util.NoSqlDao;
-import org.thingsboard.server.dao.model.ModelConstants;
-import org.thingsboard.server.dao.model.type.RelationTypeGroupCodec;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/CassandraBaseRuleDao.java b/dao/src/main/java/org/thingsboard/server/dao/rule/CassandraBaseRuleDao.java
index c14bb4e632..7026c85751 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/rule/CassandraBaseRuleDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/rule/CassandraBaseRuleDao.java
@@ -22,11 +22,11 @@ import org.thingsboard.server.common.data.id.RuleId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.common.data.rule.RuleMetaData;
-import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.ModelConstants;
import org.thingsboard.server.dao.model.nosql.RuleMetaDataEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import java.util.Arrays;
import java.util.List;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/settings/CassandraAdminSettingsDao.java b/dao/src/main/java/org/thingsboard/server/dao/settings/CassandraAdminSettingsDao.java
index c7ca062acd..e6a7ed5046 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/settings/CassandraAdminSettingsDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/settings/CassandraAdminSettingsDao.java
@@ -19,10 +19,10 @@ import com.datastax.driver.core.querybuilder.Select.Where;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.AdminSettings;
-import org.thingsboard.server.dao.nosql.CassandraAbstractModelDao;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.NoSqlDao;
import org.thingsboard.server.dao.model.nosql.AdminSettingsEntity;
+import org.thingsboard.server.dao.nosql.CassandraAbstractModelDao;
+import org.thingsboard.server.dao.util.NoSqlDao;
import static com.datastax.driver.core.querybuilder.QueryBuilder.eq;
import static com.datastax.driver.core.querybuilder.QueryBuilder.select;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
index 8571bd6408..bc6b105a60 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
@@ -28,6 +28,8 @@ import org.thingsboard.server.dao.model.BaseEntity;
import java.util.List;
import java.util.UUID;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUID;
+
/**
* @author Valerii Sosliuk
*/
@@ -38,7 +40,7 @@ public abstract class JpaAbstractDao, D>
protected abstract Class getEntityClass();
- protected abstract CrudRepository getCrudRepository();
+ protected abstract CrudRepository getCrudRepository();
protected void setSearchText(E entity) {}
@@ -64,19 +66,20 @@ public abstract class JpaAbstractDao, D>
@Override
public D findById(UUID key) {
log.debug("Get entity by key {}", key);
- E entity = getCrudRepository().findOne(key);
+ E entity = getCrudRepository().findOne(fromTimeUUID(key));
return DaoUtil.getData(entity);
}
@Override
public ListenableFuture findByIdAsync(UUID key) {
log.debug("Get entity by key async {}", key);
- return service.submit(() -> DaoUtil.getData(getCrudRepository().findOne(key)));
+ return service.submit(() -> DaoUtil.getData(getCrudRepository().findOne(fromTimeUUID(key))));
}
@Override
@Transactional
- public boolean removeById(UUID key) {
+ public boolean removeById(UUID id) {
+ String key = fromTimeUUID(id);
getCrudRepository().delete(key);
log.debug("Remove request: {}", key);
return getCrudRepository().findOne(key) == null;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractSearchTimeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractSearchTimeDao.java
index b86fab0996..c13d899a01 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractSearchTimeDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractSearchTimeDao.java
@@ -17,9 +17,9 @@ package org.thingsboard.server.dao.sql;
import com.datastax.driver.core.utils.UUIDs;
import org.springframework.data.jpa.domain.Specification;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.dao.model.BaseEntity;
-import static org.thingsboard.server.dao.model.ModelConstants.*;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
@@ -41,30 +41,30 @@ public abstract class JpaAbstractSearchTimeDao, D> exten
List predicates = new ArrayList<>();
if (pageLink.isAscOrder()) {
if (pageLink.getIdOffset() != null) {
- Predicate lowerBound = criteriaBuilder.greaterThan(root.get(idColumn), pageLink.getIdOffset());
+ Predicate lowerBound = criteriaBuilder.greaterThan(root.get(idColumn), UUIDConverter.fromTimeUUID(pageLink.getIdOffset()));
predicates.add(lowerBound);
} else if (pageLink.getStartTime() != null) {
UUID startOf = UUIDs.startOf(pageLink.getStartTime());
- Predicate lowerBound = criteriaBuilder.greaterThanOrEqualTo(root.get(idColumn), startOf);
+ Predicate lowerBound = criteriaBuilder.greaterThanOrEqualTo(root.get(idColumn), UUIDConverter.fromTimeUUID(startOf));
predicates.add(lowerBound);
}
if (pageLink.getEndTime() != null) {
UUID endOf = UUIDs.endOf(pageLink.getEndTime());
- Predicate upperBound = criteriaBuilder.lessThanOrEqualTo(root.get(idColumn), endOf);
+ Predicate upperBound = criteriaBuilder.lessThanOrEqualTo(root.get(idColumn), UUIDConverter.fromTimeUUID(endOf));
predicates.add(upperBound);
}
} else {
if (pageLink.getIdOffset() != null) {
- Predicate lowerBound = criteriaBuilder.lessThan(root.get(idColumn), pageLink.getIdOffset());
+ Predicate lowerBound = criteriaBuilder.lessThan(root.get(idColumn), UUIDConverter.fromTimeUUID(pageLink.getIdOffset()));
predicates.add(lowerBound);
} else if (pageLink.getEndTime() != null) {
UUID endOf = UUIDs.endOf(pageLink.getEndTime());
- Predicate lowerBound = criteriaBuilder.lessThanOrEqualTo(root.get(idColumn), endOf);
+ Predicate lowerBound = criteriaBuilder.lessThanOrEqualTo(root.get(idColumn), UUIDConverter.fromTimeUUID(endOf));
predicates.add(lowerBound);
}
if (pageLink.getStartTime() != null) {
UUID startOf = UUIDs.startOf(pageLink.getStartTime());
- Predicate upperBound = criteriaBuilder.greaterThanOrEqualTo(root.get(idColumn), startOf);
+ Predicate upperBound = criteriaBuilder.greaterThanOrEqualTo(root.get(idColumn), UUIDConverter.fromTimeUUID(startOf));
predicates.add(upperBound);
}
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java
index 1b129b5585..2906e0ac07 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/AlarmRepository.java
@@ -20,22 +20,21 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.EntityType;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.AlarmEntity;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
-import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/21/2017.
*/
@SqlDao
-public interface AlarmRepository extends CrudRepository {
+public interface AlarmRepository extends CrudRepository {
@Query("SELECT a FROM AlarmEntity a WHERE a.tenantId = :tenantId AND a.originatorId = :originatorId " +
"AND a.originatorType = :entityType AND a.type = :alarmType ORDER BY a.type ASC, a.id DESC")
- List findLatestByOriginatorAndType(@Param("tenantId") UUID tenantId,
- @Param("originatorId") UUID originatorId,
+ List findLatestByOriginatorAndType(@Param("tenantId") String tenantId,
+ @Param("originatorId") String originatorId,
@Param("entityType") EntityType entityType,
@Param("alarmType") String alarmType,
Pageable pageable);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
index 79779e8e1e..37de354a5b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/alarm/JpaAlarmDao.java
@@ -24,8 +24,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.common.data.EntityType;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.alarm.Alarm;
import org.thingsboard.server.common.data.alarm.AlarmInfo;
import org.thingsboard.server.common.data.alarm.AlarmQuery;
@@ -37,17 +37,15 @@ import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.alarm.AlarmDao;
import org.thingsboard.server.dao.alarm.BaseAlarmService;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.AlarmEntity;
import org.thingsboard.server.dao.relation.RelationDao;
import org.thingsboard.server.dao.sql.JpaAbstractDao;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
-import static org.springframework.transaction.annotation.Propagation.REQUIRES_NEW;
-
/**
* Created by Valerii Sosliuk on 5/19/2017.
*/
@@ -68,7 +66,7 @@ public class JpaAlarmDao extends JpaAbstractDao implements A
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return alarmRepository;
}
@@ -76,8 +74,8 @@ public class JpaAlarmDao extends JpaAbstractDao implements A
public ListenableFuture findLatestByOriginatorAndType(TenantId tenantId, EntityId originator, String type) {
return service.submit(() -> {
List latest = alarmRepository.findLatestByOriginatorAndType(
- tenantId.getId(),
- originator.getId(),
+ UUIDConverter.fromTimeUUID(tenantId.getId()),
+ UUIDConverter.fromTimeUUID(originator.getId()),
originator.getEntityType(),
type,
new PageRequest(0, 1));
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java
index f6979a30d2..478c6efeb6 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/AssetRepository.java
@@ -24,57 +24,56 @@ import org.thingsboard.server.dao.model.sql.AssetEntity;
import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
-import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/21/2017.
*/
@SqlDao
-public interface AssetRepository extends CrudRepository {
+public interface AssetRepository extends CrudRepository {
@Query("SELECT a FROM AssetEntity a WHERE a.tenantId = :tenantId " +
"AND LOWER(a.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND a.id > :idOffset ORDER BY a.id")
- List findByTenantId(@Param("tenantId") UUID tenantId,
+ List findByTenantId(@Param("tenantId") String tenantId,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT a FROM AssetEntity a WHERE a.tenantId = :tenantId " +
"AND a.customerId = :customerId " +
"AND LOWER(a.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND a.id > :idOffset ORDER BY a.id")
- List findByTenantIdAndCustomerId(@Param("tenantId") UUID tenantId,
- @Param("customerId") UUID customerId,
+ List findByTenantIdAndCustomerId(@Param("tenantId") String tenantId,
+ @Param("customerId") String customerId,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
- List findByTenantIdAndIdIn(UUID tenantId, List assetIds);
+ List findByTenantIdAndIdIn(String tenantId, List assetIds);
- List findByTenantIdAndCustomerIdAndIdIn(UUID tenantId, UUID customerId, List assetIds);
+ List findByTenantIdAndCustomerIdAndIdIn(String tenantId, String customerId, List assetIds);
- AssetEntity findByTenantIdAndName(UUID tenantId, String name);
+ AssetEntity findByTenantIdAndName(String tenantId, String name);
@Query("SELECT a FROM AssetEntity a WHERE a.tenantId = :tenantId " +
"AND a.type = :type " +
"AND LOWER(a.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND a.id > :idOffset ORDER BY a.id")
- List findByTenantIdAndType(@Param("tenantId") UUID tenantId,
+ List findByTenantIdAndType(@Param("tenantId") String tenantId,
@Param("type") String type,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT a FROM AssetEntity a WHERE a.tenantId = :tenantId " +
"AND a.customerId = :customerId AND a.type = :type " +
"AND LOWER(a.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND a.id > :idOffset ORDER BY a.id")
- List findByTenantIdAndCustomerIdAndType(@Param("tenantId") UUID tenantId,
- @Param("customerId") UUID customerId,
+ List findByTenantIdAndCustomerIdAndType(@Param("tenantId") String tenantId,
+ @Param("customerId") String customerId,
@Param("type") String type,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT NEW org.thingsboard.server.common.data.asset.TenantAssetType(a.type, a.tenantId) FROM AssetEntity a GROUP BY a.tenantId, a.type")
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java
index fe5a169e3b..81ce691022 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/asset/JpaAssetDao.java
@@ -24,17 +24,19 @@ import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.asset.TenantAssetType;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.asset.AssetDao;
import org.thingsboard.server.dao.model.sql.AssetEntity;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
-import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUID;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUIDs;
+import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID_STR;
/**
* Created by Valerii Sosliuk on 5/19/2017.
@@ -52,7 +54,7 @@ public class JpaAssetDao extends JpaAbstractSearchTextDao im
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return assetRepository;
}
@@ -60,38 +62,38 @@ public class JpaAssetDao extends JpaAbstractSearchTextDao im
public List findAssetsByTenantId(UUID tenantId, TextPageLink pageLink) {
return DaoUtil.convertDataList(assetRepository
.findByTenantId(
- tenantId,
+ fromTimeUUID(tenantId),
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@Override
public ListenableFuture> findAssetsByTenantIdAndIdsAsync(UUID tenantId, List assetIds) {
return service.submit(() ->
- DaoUtil.convertDataList(assetRepository.findByTenantIdAndIdIn(tenantId, assetIds)));
+ DaoUtil.convertDataList(assetRepository.findByTenantIdAndIdIn(fromTimeUUID(tenantId), fromTimeUUIDs(assetIds))));
}
@Override
public List findAssetsByTenantIdAndCustomerId(UUID tenantId, UUID customerId, TextPageLink pageLink) {
return DaoUtil.convertDataList(assetRepository
.findByTenantIdAndCustomerId(
- tenantId,
- customerId,
+ fromTimeUUID(tenantId),
+ fromTimeUUID(customerId),
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@Override
public ListenableFuture> findAssetsByTenantIdAndCustomerIdAndIdsAsync(UUID tenantId, UUID customerId, List assetIds) {
return service.submit(() ->
- DaoUtil.convertDataList(assetRepository.findByTenantIdAndCustomerIdAndIdIn(tenantId, customerId, assetIds)));
+ DaoUtil.convertDataList(assetRepository.findByTenantIdAndCustomerIdAndIdIn(fromTimeUUID(tenantId), fromTimeUUID(customerId), fromTimeUUIDs(assetIds))));
}
@Override
public Optional findAssetsByTenantIdAndName(UUID tenantId, String name) {
- Asset asset = DaoUtil.getData(assetRepository.findByTenantIdAndName(tenantId, name));
+ Asset asset = DaoUtil.getData(assetRepository.findByTenantIdAndName(fromTimeUUID(tenantId), name));
return Optional.ofNullable(asset);
}
@@ -99,10 +101,10 @@ public class JpaAssetDao extends JpaAbstractSearchTextDao im
public List findAssetsByTenantIdAndType(UUID tenantId, String type, TextPageLink pageLink) {
return DaoUtil.convertDataList(assetRepository
.findByTenantIdAndType(
- tenantId,
+ fromTimeUUID(tenantId),
type,
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@@ -110,11 +112,11 @@ public class JpaAssetDao extends JpaAbstractSearchTextDao im
public List findAssetsByTenantIdAndCustomerIdAndType(UUID tenantId, UUID customerId, String type, TextPageLink pageLink) {
return DaoUtil.convertDataList(assetRepository
.findByTenantIdAndCustomerIdAndType(
- tenantId,
- customerId,
+ fromTimeUUID(tenantId),
+ fromTimeUUID(customerId),
type,
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
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
index 872c249f38..3816f22ba9 100644
--- 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
@@ -17,18 +17,17 @@ package org.thingsboard.server.dao.sql.attributes;
import org.springframework.data.repository.CrudRepository;
import org.thingsboard.server.common.data.EntityType;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey;
import org.thingsboard.server.dao.model.sql.AttributeKvEntity;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
-import java.util.UUID;
@SqlDao
public interface AttributeKvRepository extends CrudRepository {
List findAllByEntityTypeAndEntityIdAndAttributeType(EntityType entityType,
- UUID entityId,
+ String entityId,
String attributeType);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java
index ac6568257f..cb8e50590a 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java
@@ -20,20 +20,23 @@ import com.google.common.util.concurrent.ListenableFuture;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.attributes.AttributesDao;
import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey;
import org.thingsboard.server.dao.model.sql.AttributeKvEntity;
import org.thingsboard.server.dao.sql.JpaAbstractDaoListeningExecutorService;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUID;
+
@Component
@Slf4j
@SqlDao
@@ -45,11 +48,7 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl
@Override
public ListenableFuture> find(EntityId entityId, String attributeType, String attributeKey) {
AttributeKvCompositeKey compositeKey =
- new AttributeKvCompositeKey(
- entityId.getEntityType(),
- entityId.getId(),
- attributeType,
- attributeKey);
+ getAttributeKvCompositeKey(entityId, attributeType, attributeKey);
return service.submit(() ->
Optional.of(DaoUtil.getData(attributeKvRepository.findOne(compositeKey))));
}
@@ -60,11 +59,7 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl
attributeKeys
.stream()
.map(attributeKey ->
- new AttributeKvCompositeKey(
- entityId.getEntityType(),
- entityId.getId(),
- attributeType,
- attributeKey))
+ getAttributeKvCompositeKey(entityId, attributeType, attributeKey))
.collect(Collectors.toList());
return service.submit(() ->
DaoUtil.convertDataList(Lists.newArrayList(attributeKvRepository.findAll(compositeKeys))));
@@ -76,7 +71,7 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl
DaoUtil.convertDataList(Lists.newArrayList(
attributeKvRepository.findAllByEntityTypeAndEntityIdAndAttributeType(
entityId.getEntityType(),
- entityId.getId(),
+ UUIDConverter.fromTimeUUID(entityId.getId()),
attributeType))));
}
@@ -84,7 +79,7 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl
public ListenableFuture save(EntityId entityId, String attributeType, AttributeKvEntry attribute) {
AttributeKvEntity entity = new AttributeKvEntity();
entity.setEntityType(entityId.getEntityType());
- entity.setEntityId(entityId.getId());
+ entity.setEntityId(fromTimeUUID(entityId.getId()));
entity.setAttributeType(attributeType);
entity.setAttributeKey(attribute.getKey());
entity.setLastUpdateTs(attribute.getLastUpdateTs());
@@ -105,7 +100,7 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl
.map(key -> {
AttributeKvEntity entityToDelete = new AttributeKvEntity();
entityToDelete.setEntityType(entityId.getEntityType());
- entityToDelete.setEntityId(entityId.getId());
+ entityToDelete.setEntityId(fromTimeUUID(entityId.getId()));
entityToDelete.setAttributeType(attributeType);
entityToDelete.setAttributeKey(key);
return entityToDelete;
@@ -116,4 +111,12 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl
return null;
});
}
+
+ private AttributeKvCompositeKey getAttributeKvCompositeKey(EntityId entityId, String attributeType, String attributeKey) {
+ return new AttributeKvCompositeKey(
+ entityId.getEntityType(),
+ fromTimeUUID(entityId.getId()),
+ attributeType,
+ attributeKey);
+ }
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java
index 8be6b9551e..e9d231d303 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/component/ComponentDescriptorRepository.java
@@ -21,8 +21,8 @@ import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.thingsboard.server.common.data.plugin.ComponentScope;
import org.thingsboard.server.common.data.plugin.ComponentType;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.ComponentDescriptorEntity;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
import java.util.UUID;
@@ -31,7 +31,7 @@ import java.util.UUID;
* Created by Valerii Sosliuk on 5/6/2017.
*/
@SqlDao
-public interface ComponentDescriptorRepository extends CrudRepository {
+public interface ComponentDescriptorRepository extends CrudRepository {
ComponentDescriptorEntity findByClazz(String clazz);
@@ -40,7 +40,7 @@ public interface ComponentDescriptorRepository extends CrudRepository :idOffset ORDER BY cd.id")
List findByType(@Param("type") ComponentType type,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT cd FROM ComponentDescriptorEntity cd WHERE cd.type = :type " +
@@ -49,7 +49,7 @@ public interface ComponentDescriptorRepository extends CrudRepository findByScopeAndType(@Param("type") ComponentType type,
@Param("scope") ComponentScope scope,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
void deleteByClazz(String clazz);
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java
index ae2a6ed6d7..e94fb4d223 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/component/JpaBaseComponentDescriptorDao.java
@@ -20,23 +20,23 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.ComponentDescriptorId;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.common.data.plugin.ComponentDescriptor;
import org.thingsboard.server.common.data.plugin.ComponentScope;
import org.thingsboard.server.common.data.plugin.ComponentType;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.component.ComponentDescriptorDao;
import org.thingsboard.server.dao.model.sql.ComponentDescriptorEntity;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
-import java.util.UUID;
-import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID_STR;
/**
* Created by Valerii Sosliuk on 5/6/2017.
@@ -55,7 +55,7 @@ public class JpaBaseComponentDescriptorDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return componentDescriptorRepository;
}
@@ -64,8 +64,7 @@ public class JpaBaseComponentDescriptorDao extends JpaAbstractSearchTextDao {
+public interface CustomerRepository extends CrudRepository {
@Query("SELECT c FROM CustomerEntity c WHERE c.tenantId = :tenantId " +
"AND LOWER(c.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND c.id > :idOffset ORDER BY c.id")
- List findByTenantId(@Param("tenantId") UUID tenantId,
+ List findByTenantId(@Param("tenantId") String tenantId,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
- CustomerEntity findByTenantIdAndTitle(UUID tenantId, String title);
+ CustomerEntity findByTenantIdAndTitle(String tenantId, String title);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java
index 27d5925992..6fabca24eb 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/customer/JpaCustomerDao.java
@@ -20,19 +20,20 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Customer;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.customer.CustomerDao;
import org.thingsboard.server.dao.model.sql.CustomerEntity;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
-import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID_STR;
/**
* Created by Valerii Sosliuk on 5/6/2017.
@@ -50,22 +51,22 @@ public class JpaCustomerDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return customerRepository;
}
@Override
public List findCustomersByTenantId(UUID tenantId, TextPageLink pageLink) {
return DaoUtil.convertDataList(customerRepository.findByTenantId(
- tenantId,
+ UUIDConverter.fromTimeUUID(tenantId),
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : UUIDConverter.fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@Override
public Optional findCustomersByTenantIdAndTitle(UUID tenantId, String title) {
- Customer customer = DaoUtil.getData(customerRepository.findByTenantIdAndTitle(tenantId, title));
+ Customer customer = DaoUtil.getData(customerRepository.findByTenantIdAndTitle(UUIDConverter.fromTimeUUID(tenantId), title));
return Optional.ofNullable(customer);
}
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java
index 654915f74a..7f0ec7abf6 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardInfoRepository.java
@@ -19,8 +19,8 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.DashboardInfoEntity;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
import java.util.UUID;
@@ -29,22 +29,22 @@ import java.util.UUID;
* Created by Valerii Sosliuk on 5/6/2017.
*/
@SqlDao
-public interface DashboardInfoRepository extends CrudRepository {
+public interface DashboardInfoRepository extends CrudRepository {
@Query("SELECT di FROM DashboardInfoEntity di WHERE di.tenantId = :tenantId " +
"AND LOWER(di.searchText) LIKE LOWER(CONCAT(:searchText, '%')) " +
"AND di.id > :idOffset ORDER BY di.id")
- List findByTenantId(@Param("tenantId") UUID tenantId,
+ List findByTenantId(@Param("tenantId") String tenantId,
@Param("searchText") String searchText,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT di FROM DashboardInfoEntity di WHERE di.tenantId = :tenantId " +
"AND di.customerId = :customerId AND LOWER(di.searchText) LIKE LOWER(CONCAT(:searchText, '%')) " +
"AND di.id > :idOffset ORDER BY di.id")
- List findByTenantIdAndCustomerId(@Param("tenantId") UUID tenantId,
- @Param("customerId") UUID customerId,
+ List findByTenantIdAndCustomerId(@Param("tenantId") String tenantId,
+ @Param("customerId") String customerId,
@Param("searchText") String searchText,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java
index 509fd174ec..2c4d18a09f 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/DashboardRepository.java
@@ -16,14 +16,12 @@
package org.thingsboard.server.dao.sql.dashboard;
import org.springframework.data.repository.CrudRepository;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.DashboardEntity;
-
-import java.util.UUID;
+import org.thingsboard.server.dao.util.SqlDao;
/**
* Created by Valerii Sosliuk on 5/6/2017.
*/
@SqlDao
-public interface DashboardRepository extends CrudRepository {
+public interface DashboardRepository extends CrudRepository {
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java
index b40c99a7ab..c2650f9114 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardDao.java
@@ -19,12 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Dashboard;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.dashboard.DashboardDao;
import org.thingsboard.server.dao.model.sql.DashboardEntity;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
-
-import java.util.UUID;
+import org.thingsboard.server.dao.util.SqlDao;
/**
* Created by Valerii Sosliuk on 5/6/2017.
@@ -42,7 +40,7 @@ public class JpaDashboardDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return dashboardRepository;
}
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java
index 9fe613a7e8..204189af11 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/dashboard/JpaDashboardInfoDao.java
@@ -20,18 +20,19 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.DashboardInfo;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.dashboard.DashboardInfoDao;
import org.thingsboard.server.dao.model.sql.DashboardInfoEntity;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
-import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID_STR;
/**
* Created by Valerii Sosliuk on 5/6/2017.
@@ -57,9 +58,9 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao findDashboardsByTenantId(UUID tenantId, TextPageLink pageLink) {
return DaoUtil.convertDataList(dashboardInfoRepository
.findByTenantId(
- tenantId,
+ UUIDConverter.fromTimeUUID(tenantId),
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : UUIDConverter.fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@@ -67,10 +68,10 @@ public class JpaDashboardInfoDao extends JpaAbstractSearchTextDao findDashboardsByTenantIdAndCustomerId(UUID tenantId, UUID customerId, TextPageLink pageLink) {
return DaoUtil.convertDataList(dashboardInfoRepository
.findByTenantIdAndCustomerId(
- tenantId,
- customerId,
+ UUIDConverter.fromTimeUUID(tenantId),
+ UUIDConverter.fromTimeUUID(customerId),
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : UUIDConverter.fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceCredentialsRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceCredentialsRepository.java
index 3e117c0a26..8abeadc305 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceCredentialsRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceCredentialsRepository.java
@@ -16,18 +16,16 @@
package org.thingsboard.server.dao.sql.device;
import org.springframework.data.repository.CrudRepository;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.DeviceCredentialsEntity;
-
-import java.util.UUID;
+import org.thingsboard.server.dao.util.SqlDao;
/**
* Created by Valerii Sosliuk on 5/6/2017.
*/
@SqlDao
-public interface DeviceCredentialsRepository extends CrudRepository {
+public interface DeviceCredentialsRepository extends CrudRepository {
- DeviceCredentialsEntity findByDeviceId(UUID deviceId);
+ DeviceCredentialsEntity findByDeviceId(String deviceId);
DeviceCredentialsEntity findByCredentialsId(String credentialsId);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java
index feae4a6b24..256f62343b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/DeviceRepository.java
@@ -19,46 +19,45 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.DeviceEntity;
import org.thingsboard.server.dao.model.sql.TenantDeviceTypeEntity;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
-import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/6/2017.
*/
@SqlDao
-public interface DeviceRepository extends CrudRepository {
+public interface DeviceRepository extends CrudRepository {
@Query("SELECT d FROM DeviceEntity d WHERE d.tenantId = :tenantId " +
"AND d.customerId = :customerId " +
"AND LOWER(d.searchText) LIKE LOWER(CONCAT(:searchText, '%')) " +
"AND d.id > :idOffset ORDER BY d.id")
- List findByTenantIdAndCustomerId(@Param("tenantId") UUID tenantId,
- @Param("customerId") UUID customerId,
+ List findByTenantIdAndCustomerId(@Param("tenantId") String tenantId,
+ @Param("customerId") String customerId,
@Param("searchText") String searchText,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT d FROM DeviceEntity d WHERE d.tenantId = :tenantId " +
"AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND d.id > :idOffset ORDER BY d.id")
- List findByTenantId(@Param("tenantId") UUID tenantId,
+ List findByTenantId(@Param("tenantId") String tenantId,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT d FROM DeviceEntity d WHERE d.tenantId = :tenantId " +
"AND d.type = :type " +
"AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND d.id > :idOffset ORDER BY d.id")
- List findByTenantIdAndType(@Param("tenantId") UUID tenantId,
+ List findByTenantIdAndType(@Param("tenantId") String tenantId,
@Param("type") String type,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT d FROM DeviceEntity d WHERE d.tenantId = :tenantId " +
@@ -66,19 +65,19 @@ public interface DeviceRepository extends CrudRepository {
"AND d.type = :type " +
"AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND d.id > :idOffset ORDER BY d.id")
- List findByTenantIdAndCustomerIdAndType(@Param("tenantId") UUID tenantId,
- @Param("customerId") UUID customerId,
+ List findByTenantIdAndCustomerIdAndType(@Param("tenantId") String tenantId,
+ @Param("customerId") String customerId,
@Param("type") String type,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT DISTINCT NEW org.thingsboard.server.dao.model.sql.TenantDeviceTypeEntity(d.tenantId, d.type) FROM DeviceEntity d")
List findTenantDeviceTypes();
- DeviceEntity findByTenantIdAndName(UUID tenantId, String name);
+ DeviceEntity findByTenantIdAndName(String tenantId, String name);
- List findDevicesByTenantIdAndCustomerIdAndIdIn(UUID tenantId, UUID customerId, List deviceIds);
+ List findDevicesByTenantIdAndCustomerIdAndIdIn(String tenantId, String customerId, List deviceIds);
- List findDevicesByTenantIdAndIdIn(UUID tenantId, List deviceIds);
+ List findDevicesByTenantIdAndIdIn(String tenantId, List deviceIds);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java
index 6ffa5349d6..24832da13e 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceCredentialsDao.java
@@ -18,12 +18,13 @@ package org.thingsboard.server.dao.sql.device;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.security.DeviceCredentials;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.device.DeviceCredentialsDao;
import org.thingsboard.server.dao.model.sql.DeviceCredentialsEntity;
import org.thingsboard.server.dao.sql.JpaAbstractDao;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.UUID;
@@ -43,13 +44,13 @@ public class JpaDeviceCredentialsDao extends JpaAbstractDao getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return deviceCredentialsRepository;
}
@Override
public DeviceCredentials findByDeviceId(UUID deviceId) {
- return DaoUtil.getData(deviceCredentialsRepository.findByDeviceId(deviceId));
+ return DaoUtil.getData(deviceCredentialsRepository.findByDeviceId(UUIDConverter.fromTimeUUID(deviceId)));
}
@Override
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java
index ff7be31028..4835c6c031 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/device/JpaDeviceDao.java
@@ -22,18 +22,21 @@ import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Device;
import org.thingsboard.server.common.data.TenantDeviceType;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.device.DeviceDao;
import org.thingsboard.server.dao.model.sql.DeviceEntity;
import org.thingsboard.server.dao.model.sql.TenantDeviceTypeEntity;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.*;
-import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUID;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUIDs;
+import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID_STR;
/**
* Created by Valerii Sosliuk on 5/6/2017.
@@ -51,7 +54,7 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao
}
@Override
- protected CrudRepository getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return deviceRepository;
}
@@ -59,37 +62,37 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao
public List findDevicesByTenantId(UUID tenantId, TextPageLink pageLink) {
return DaoUtil.convertDataList(
deviceRepository.findByTenantId(
- tenantId,
+ fromTimeUUID(tenantId),
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@Override
public ListenableFuture> findDevicesByTenantIdAndIdsAsync(UUID tenantId, List deviceIds) {
- return service.submit(() -> DaoUtil.convertDataList(deviceRepository.findDevicesByTenantIdAndIdIn(tenantId, deviceIds)));
+ return service.submit(() -> DaoUtil.convertDataList(deviceRepository.findDevicesByTenantIdAndIdIn(UUIDConverter.fromTimeUUID(tenantId), fromTimeUUIDs(deviceIds))));
}
@Override
public List findDevicesByTenantIdAndCustomerId(UUID tenantId, UUID customerId, TextPageLink pageLink) {
return DaoUtil.convertDataList(
deviceRepository.findByTenantIdAndCustomerId(
- tenantId,
- customerId,
+ fromTimeUUID(tenantId),
+ fromTimeUUID(customerId),
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@Override
public ListenableFuture> findDevicesByTenantIdCustomerIdAndIdsAsync(UUID tenantId, UUID customerId, List deviceIds) {
return service.submit(() -> DaoUtil.convertDataList(
- deviceRepository.findDevicesByTenantIdAndCustomerIdAndIdIn(tenantId, customerId, deviceIds)));
+ deviceRepository.findDevicesByTenantIdAndCustomerIdAndIdIn(fromTimeUUID(tenantId), fromTimeUUID(customerId), fromTimeUUIDs(deviceIds))));
}
@Override
public Optional findDeviceByTenantIdAndName(UUID tenantId, String name) {
- Device device = DaoUtil.getData(deviceRepository.findByTenantIdAndName(tenantId, name));
+ Device device = DaoUtil.getData(deviceRepository.findByTenantIdAndName(fromTimeUUID(tenantId), name));
return Optional.ofNullable(device);
}
@@ -97,10 +100,10 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao
public List findDevicesByTenantIdAndType(UUID tenantId, String type, TextPageLink pageLink) {
return DaoUtil.convertDataList(
deviceRepository.findByTenantIdAndType(
- tenantId,
+ fromTimeUUID(tenantId),
type,
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@@ -108,11 +111,11 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao
public List findDevicesByTenantIdAndCustomerIdAndType(UUID tenantId, UUID customerId, String type, TextPageLink pageLink) {
return DaoUtil.convertDataList(
deviceRepository.findByTenantIdAndCustomerIdAndType(
- tenantId,
- customerId,
+ fromTimeUUID(tenantId),
+ fromTimeUUID(customerId),
type,
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit())));
}
@@ -126,7 +129,7 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao
if (entities != null && !entities.isEmpty()) {
list = new ArrayList<>();
for (TenantDeviceTypeEntity entity : entities) {
- list.add(new TenantDeviceType(entity.getType(), new TenantId(entity.getTenantId())));
+ list.add(new TenantDeviceType(entity.getType(), new TenantId(UUIDConverter.fromString(entity.getTenantId()))));
}
}
return list;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java
index 3fbfae2e92..0fa23f4e6b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/event/EventRepository.java
@@ -21,21 +21,19 @@ import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.dao.model.sql.EventEntity;
import org.thingsboard.server.dao.util.SqlDao;
-import java.util.UUID;
-
/**
* Created by Valerii Sosliuk on 5/3/2017.
*/
@SqlDao
-public interface EventRepository extends CrudRepository, JpaSpecificationExecutor {
+public interface EventRepository extends CrudRepository, JpaSpecificationExecutor {
- EventEntity findByTenantIdAndEntityTypeAndEntityIdAndEventTypeAndEventUid(UUID tenantId,
+ EventEntity findByTenantIdAndEntityTypeAndEntityIdAndEventTypeAndEventUid(String tenantId,
EntityType entityType,
- UUID entityId,
+ String entityId,
String eventType,
String eventUid);
- EventEntity findByTenantIdAndEntityTypeAndEntityId(UUID tenantId,
+ EventEntity findByTenantIdAndEntityTypeAndEntityId(String tenantId,
EntityType entityType,
- UUID entityId);
+ String entityId);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java
index b68585f8bc..581464393c 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java
@@ -26,14 +26,15 @@ import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.Event;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.EventId;
import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.event.EventDao;
import org.thingsboard.server.dao.model.sql.EventEntity;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTimeDao;
+import org.thingsboard.server.dao.util.SqlDao;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
@@ -67,7 +68,7 @@ public class JpaBaseEventDao extends JpaAbstractSearchTimeDao getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return eventRepository;
}
@@ -91,7 +92,7 @@ public class JpaBaseEventDao extends JpaAbstractSearchTimeDao root, CriteriaQuery> criteriaQuery, CriteriaBuilder criteriaBuilder) {
List predicates = new ArrayList();
if (tenantId != null) {
- Predicate tenantIdPredicate = criteriaBuilder.equal(root.get("tenantId"), tenantId);
+ Predicate tenantIdPredicate = criteriaBuilder.equal(root.get("tenantId"), UUIDConverter.fromTimeUUID(tenantId));
predicates.add(tenantIdPredicate);
}
if (entityId != null) {
Predicate entityTypePredicate = criteriaBuilder.equal(root.get("entityType"), entityId.getEntityType());
predicates.add(entityTypePredicate);
- Predicate entityIdPredicate = criteriaBuilder.equal(root.get("entityId"), entityId.getId());
+ Predicate entityIdPredicate = criteriaBuilder.equal(root.get("entityId"), UUIDConverter.fromTimeUUID(entityId.getId()));
predicates.add(entityIdPredicate);
}
if (eventType != null) {
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/JpaBasePluginDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/JpaBasePluginDao.java
index 5012d48c6e..c0843f31d7 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/JpaBasePluginDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/JpaBasePluginDao.java
@@ -20,22 +20,23 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.PluginId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.TextPageLink;
import org.thingsboard.server.common.data.plugin.PluginMetaData;
import org.thingsboard.server.dao.DaoUtil;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.PluginMetaDataEntity;
import org.thingsboard.server.dao.plugin.PluginDao;
import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
-import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
+import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID_STR;
/**
* Created by Valerii Sosliuk on 5/1/2017.
@@ -54,7 +55,7 @@ public class JpaBasePluginDao extends JpaAbstractSearchTextDao getCrudRepository() {
+ protected CrudRepository getCrudRepository() {
return pluginMetaDataRepository;
}
@@ -85,7 +86,7 @@ public class JpaBasePluginDao extends JpaAbstractSearchTextDao entities = pluginMetaDataRepository
.findByTenantIdAndPageLink(
- tenantId.getId(),
+ UUIDConverter.fromTimeUUID(tenantId.getId()),
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : UUIDConverter.fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit()));
if (log.isTraceEnabled()) {
log.trace("Search result: [{}]", Arrays.toString(entities.toArray()));
@@ -115,10 +116,10 @@ public class JpaBasePluginDao extends JpaAbstractSearchTextDao entities = pluginMetaDataRepository
.findAllTenantPluginsByTenantId(
- tenantId,
- NULL_UUID,
+ UUIDConverter.fromTimeUUID(tenantId),
+ NULL_UUID_STR,
Objects.toString(pageLink.getTextSearch(), ""),
- pageLink.getIdOffset() == null ? NULL_UUID : pageLink.getIdOffset(),
+ pageLink.getIdOffset() == null ? NULL_UUID_STR : UUIDConverter.fromTimeUUID(pageLink.getIdOffset()),
new PageRequest(0, pageLink.getLimit()));
if (log.isTraceEnabled()) {
log.trace("Search result: [{}]", Arrays.toString(entities.toArray()));
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/PluginMetaDataRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/PluginMetaDataRepository.java
index 60f319d351..577c3e75eb 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/PluginMetaDataRepository.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/plugin/PluginMetaDataRepository.java
@@ -19,34 +19,33 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
-import org.thingsboard.server.dao.util.SqlDao;
import org.thingsboard.server.dao.model.sql.PluginMetaDataEntity;
+import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
-import java.util.UUID;
/**
* Created by Valerii Sosliuk on 5/1/2017.
*/
@SqlDao
-public interface PluginMetaDataRepository extends CrudRepository {
+public interface PluginMetaDataRepository extends CrudRepository {
PluginMetaDataEntity findByApiToken(String apiToken);
@Query("SELECT pmd FROM PluginMetaDataEntity pmd WHERE pmd.tenantId = :tenantId " +
"AND LOWER(pmd.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND pmd.id > :idOffset ORDER BY pmd.id")
- List findByTenantIdAndPageLink(@Param("tenantId") UUID tenantId,
+ List findByTenantIdAndPageLink(@Param("tenantId") String tenantId,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
@Query("SELECT pmd FROM PluginMetaDataEntity pmd WHERE pmd.tenantId IN (:tenantId, :nullTenantId) " +
"AND LOWER(pmd.searchText) LIKE LOWER(CONCAT(:textSearch, '%')) " +
"AND pmd.id > :idOffset ORDER BY pmd.id")
- List findAllTenantPluginsByTenantId(@Param("tenantId") UUID tenantId,
- @Param("nullTenantId") UUID nullTenantId,
+ List findAllTenantPluginsByTenantId(@Param("tenantId") String tenantId,
+ @Param("nullTenantId") String nullTenantId,
@Param("textSearch") String textSearch,
- @Param("idOffset") UUID idOffset,
+ @Param("idOffset") String idOffset,
Pageable pageable);
}
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java
index 1c4122b361..389348b407 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java
@@ -25,6 +25,7 @@ import org.springframework.data.domain.Sort.Order;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.EntityType;
+import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.page.TimePageLink;
import org.thingsboard.server.common.data.relation.EntityRelation;
@@ -46,6 +47,7 @@ import java.util.List;
import static org.springframework.data.domain.Sort.Direction.ASC;
import static org.springframework.data.jpa.domain.Specifications.where;
+import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUID;
/**
* Created by Valerii Sosliuk on 5/29/2017.
@@ -62,7 +64,7 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple
public ListenableFuture> findAllByFrom(EntityId from, RelationTypeGroup typeGroup) {
return service.submit(() -> DaoUtil.convertDataList(
relationRepository.findAllByFromIdAndFromTypeAndRelationTypeGroup(
- from.getId(),
+ UUIDConverter.fromTimeUUID(from.getId()),
from.getEntityType().name(),
typeGroup.name())));
}
@@ -71,7 +73,7 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple
public ListenableFuture> findAllByFromAndType(EntityId from, String relationType, RelationTypeGroup typeGroup) {
return service.submit(() -> DaoUtil.convertDataList(
relationRepository.findAllByFromIdAndFromTypeAndRelationTypeAndRelationTypeGroup(
- from.getId(),
+ UUIDConverter.fromTimeUUID(from.getId()),
from.getEntityType().name(),
relationType,
typeGroup.name())));
@@ -81,7 +83,7 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple
public ListenableFuture> findAllByTo(EntityId to, RelationTypeGroup typeGroup) {
return service.submit(() -> DaoUtil.convertDataList(
relationRepository.findAllByToIdAndToTypeAndRelationTypeGroup(
- to.getId(),
+ UUIDConverter.fromTimeUUID(to.getId()),
to.getEntityType().name(),
typeGroup.name())));
}
@@ -90,7 +92,7 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple
public ListenableFuture> findAllByToAndType(EntityId to, String relationType, RelationTypeGroup typeGroup) {
return service.submit(() -> DaoUtil.convertDataList(
relationRepository.findAllByToIdAndToTypeAndRelationTypeAndRelationTypeGroup(
- to.getId(),
+ UUIDConverter.fromTimeUUID(to.getId()),
to.getEntityType().name(),
relationType,
typeGroup.name())));
@@ -98,28 +100,25 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple
@Override
public ListenableFuture checkRelation(EntityId from, EntityId to, String relationType, RelationTypeGroup typeGroup) {
- RelationCompositeKey key =
- new RelationCompositeKey(from.getId(),
- from.getEntityType().name(),
- to.getId(),
- to.getEntityType().name(),
- relationType,
- typeGroup.name());
+ RelationCompositeKey key = getRelationCompositeKey(from, to, relationType, typeGroup);
return service.submit(() -> relationRepository.findOne(key) != null);
}
@Override
public ListenableFuture