From e37e4369783b78b9efa596a4487a124bba50b254 Mon Sep 17 00:00:00 2001 From: mp-loki Date: Thu, 25 May 2017 22:13:03 -0400 Subject: [PATCH] Enum persistence changed to string --- .../server/dao/model/sql/AlarmEntity.java | 2 ++ .../model/sql/ComponentDescriptorEntity.java | 9 ++++----- .../dao/model/sql/DeviceCredentialsEntity.java | 10 ++++------ .../server/dao/model/sql/EventEntity.java | 9 ++++----- .../dao/model/sql/PluginMetaDataEntity.java | 9 ++++----- .../dao/model/sql/RuleMetaDataEntity.java | 17 ++++++++++++----- .../server/dao/model/sql/UserEntity.java | 1 + .../ComponentDescriptorRepository.java | 8 ++++---- .../JpaBaseComponentDescriptorDao.java | 8 ++++---- .../server/dao/sql/user/UserRepository.java | 8 ++++---- .../server/dao/sql/user/JpaUserDaoTest.java | 1 - .../resources/dbunit/device_credentials.xml | 4 ++-- dao/src/test/resources/dbunit/event.xml | 4 ++-- dao/src/test/resources/dbunit/user.xml | 14 +++++++------- 14 files changed, 54 insertions(+), 50 deletions(-) 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 6806d6be29..d807c59dbe 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 @@ -58,9 +58,11 @@ public final class AlarmEntity implements BaseEntity { @Column(name = ALARM_TYPE_PROPERTY) private String type; + @Enumerated(EnumType.STRING) @Column(name = ALARM_SEVERITY_PROPERTY) private AlarmSeverity severity; + @Enumerated(EnumType.STRING) @Column(name = ALARM_STATUS_PROPERTY) private AlarmStatus status; 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 02cad5d8e6..00e34e8081 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 @@ -15,11 +15,8 @@ */ package org.thingsboard.server.dao.model.sql; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Transient; +import javax.persistence.*; + import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; @@ -50,9 +47,11 @@ public class ComponentDescriptorEntity implements SearchTextEntity { @Column(name = EVENT_TENANT_ID_PROPERTY) private UUID tenantId; + @Enumerated(EnumType.STRING) @Column(name = EVENT_ENTITY_TYPE_PROPERTY) private EntityType entityType; 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 8d8974dcf8..283ca35e3b 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 @@ -16,11 +16,9 @@ package org.thingsboard.server.dao.model.sql; import com.datastax.driver.core.utils.UUIDs; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Transient; + +import javax.persistence.*; + import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.Data; @@ -66,6 +64,7 @@ public class PluginMetaDataEntity implements SearchTextEntity { @Column(name = ModelConstants.PLUGIN_ACCESS_PROPERTY) private boolean publicAccess; + @Enumerated(EnumType.STRING) @Column(name = ModelConstants.PLUGIN_STATE_PROPERTY) private ComponentLifecycleState state; 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 193501a981..77a8562568 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 @@ -17,11 +17,7 @@ package org.thingsboard.server.dao.model.sql; import com.datastax.driver.core.utils.UUIDs; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Transient; +import javax.persistence.*; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -53,27 +49,38 @@ public class RuleMetaDataEntity implements SearchTextEntity { @Id @Column(name = ModelConstants.ID_PROPERTY) private UUID id; + @Column(name = ModelConstants.RULE_TENANT_ID_PROPERTY) private UUID tenantId; + @Column(name = ModelConstants.RULE_NAME_PROPERTY) private String name; + + @Enumerated(EnumType.STRING) @Column(name = ModelConstants.RULE_STATE_PROPERTY) private ComponentLifecycleState state; + @Column(name = ModelConstants.RULE_WEIGHT_PROPERTY) private int weight; + @Column(name = ModelConstants.SEARCH_TEXT_PROPERTY) private String searchText; + @Column(name = ModelConstants.RULE_PLUGIN_TOKEN_PROPERTY) private String pluginToken; + @Type(type = "jsonb") @Column(name = ModelConstants.RULE_FILTERS, columnDefinition = "jsonb") private JsonNode filters; + @Type(type = "jsonb") @Column(name = ModelConstants.RULE_PROCESSOR, columnDefinition = "jsonb") private JsonNode processor; + @Type(type = "jsonb") @Column(name = ModelConstants.RULE_ACTION, columnDefinition = "jsonb") private JsonNode action; + @Type(type = "jsonb") @Column(name = ModelConstants.ADDITIONAL_INFO_PROPERTY, columnDefinition = "jsonb") private JsonNode additionalInfo; 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 6572462df0..e7bc7fae3e 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 @@ -56,6 +56,7 @@ public class UserEntity implements SearchTextEntity { @Column(name = ModelConstants.USER_CUSTOMER_ID_PROPERTY) private UUID customerId; + @Enumerated(EnumType.STRING) @Column(name = ModelConstants.USER_AUTHORITY_PROPERTY) private Authority authority; 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 9bd8c1f252..ee72b2dcca 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 @@ -39,22 +39,22 @@ public interface ComponentDescriptorRepository extends CrudRepository findByTypeFirstPage(int limit, int type, String textSearch); + List findByTypeFirstPage(int limit, String type, String textSearch); @Query(nativeQuery = true, value = "SELECT * FROM COMPONENT_DESCRIPTOR WHERE TYPE = ?2 " + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?3, '%')) " + "AND ID > ?4 ORDER BY ID LIMIT ?1") - List findByTypeNextPage(int limit, int type, String textSearch, UUID idOffset); + List findByTypeNextPage(int limit, String type, String textSearch, UUID idOffset); @Query(nativeQuery = true, value = "SELECT * FROM COMPONENT_DESCRIPTOR WHERE TYPE = ?2 " + "AND SCOPE = ?3 AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?4, '%')) " + "ORDER BY ID LIMIT ?1") - List findByScopeAndTypeFirstPage(int limit, int type, int scope, String textSearch); + List findByScopeAndTypeFirstPage(int limit, String type, String scope, String textSearch); @Query(nativeQuery = true, value = "SELECT * FROM COMPONENT_DESCRIPTOR WHERE TYPE = ?2 " + "AND SCOPE = ?3 AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?4, '%')) " + "AND ID > ?5 ORDER BY ID LIMIT ?1") - List findByScopeAndTypeNextPage(int limit, int type, int scope, String textSearch, UUID idOffset); + List findByScopeAndTypeNextPage(int limit, String type, String scope, String textSearch, UUID idOffset); 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 596d142dd9..fec30b9d3f 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 @@ -78,10 +78,10 @@ public class JpaBaseComponentDescriptorDao extends JpaAbstractSearchTextDao findByTypeAndPageLink(ComponentType type, TextPageLink pageLink) { if (pageLink.getIdOffset() == null) { return DaoUtil.convertDataList(componentDescriptorRepository.findByTypeFirstPage(pageLink.getLimit(), - type.ordinal(), pageLink.getTextSearch())); + type.toString(), pageLink.getTextSearch())); } else { return DaoUtil.convertDataList(componentDescriptorRepository.findByTypeNextPage(pageLink.getLimit(), - type.ordinal(), pageLink.getTextSearch(), pageLink.getIdOffset())); + type.toString(), pageLink.getTextSearch(), pageLink.getIdOffset())); } } @@ -89,10 +89,10 @@ public class JpaBaseComponentDescriptorDao extends JpaAbstractSearchTextDao findByScopeAndTypeAndPageLink(ComponentScope scope, ComponentType type, TextPageLink pageLink) { if (pageLink.getIdOffset() == null) { return DaoUtil.convertDataList(componentDescriptorRepository.findByScopeAndTypeFirstPage(pageLink.getLimit(), - type.ordinal(), scope.ordinal(), pageLink.getTextSearch())); + type.toString(), scope.toString(), pageLink.getTextSearch())); } else { return DaoUtil.convertDataList(componentDescriptorRepository.findByScopeAndTypeNextPage(pageLink.getLimit(), - type.ordinal(), scope.ordinal(), pageLink.getTextSearch(), pageLink.getIdOffset())); + type.toString(), scope.toString(), pageLink.getTextSearch(), pageLink.getIdOffset())); } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java index 585bf38335..b7d3aa7016 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/user/UserRepository.java @@ -32,22 +32,22 @@ public interface UserRepository extends CrudRepository { UserEntity findByEmail(String email); @Query(nativeQuery = true, value = "SELECT * FROM TB_USER WHERE TENANT_ID = ?2 " + - "AND CUSTOMER_ID IS NULL AND AUTHORITY = 1 " + + "AND CUSTOMER_ID IS NULL AND AUTHORITY = 'TENANT_ADMIN' " + "ORDER BY ID LIMIT ?1") List findTenantAdminsFirstPage(int limit, UUID tenantId); @Query(nativeQuery = true, value = "SELECT * FROM TB_USER WHERE TENANT_ID = ?2 " + - "AND CUSTOMER_ID IS NULL AND AUTHORITY = 1 " + + "AND CUSTOMER_ID IS NULL AND AUTHORITY = 'TENANT_ADMIN' " + "AND ID > ?3 ORDER BY ID LIMIT ?1") List findTenantAdminsNextPage(int limit, UUID tenantId, UUID idOffset); @Query(nativeQuery = true, value = "SELECT * FROM TB_USER WHERE TENANT_ID = ?2 " + - "AND CUSTOMER_ID = ?3 AND AUTHORITY = 2 " + + "AND CUSTOMER_ID = ?3 AND AUTHORITY = 'CUSTOMER_USER' " + "ORDER BY ID LIMIT ?1") List findCustomerUsersFirstPage(int limit, UUID tenantId, UUID customerId); @Query(nativeQuery = true, value = "SELECT * FROM TB_USER WHERE TENANT_ID = ?2 " + - "AND CUSTOMER_ID = ?3 AND AUTHORITY = 2 " + + "AND CUSTOMER_ID = ?3 AND AUTHORITY = 'CUSTOMER_USER' " + "AND ID > ?4 ORDER BY ID LIMIT ?1") List findCustomerUsersNextPage(int limit, UUID tenantId, UUID customerId, UUID idOffset); diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java index 9ec8a6800f..4b4691867d 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/user/JpaUserDaoTest.java @@ -113,7 +113,6 @@ public class JpaUserDaoTest extends AbstractJpaDaoTest { userDao.save(user); assertEquals(6, userDao.find().size()); User savedUser = userDao.findByEmail("user@thingsboard.org"); - //User savedUser = userDao.findById(UUID.fromString("cd481534-27cc-11e7-93ae-92361f002671")); assertNotNull(savedUser); assertEquals(additionalInfo, savedUser.getAdditionalInfo().toString()); } diff --git a/dao/src/test/resources/dbunit/device_credentials.xml b/dao/src/test/resources/dbunit/device_credentials.xml index aee6b1ec19..01ccd6615b 100644 --- a/dao/src/test/resources/dbunit/device_credentials.xml +++ b/dao/src/test/resources/dbunit/device_credentials.xml @@ -2,14 +2,14 @@ diff --git a/dao/src/test/resources/dbunit/event.xml b/dao/src/test/resources/dbunit/event.xml index 943b45af2e..b150b7c394 100644 --- a/dao/src/test/resources/dbunit/event.xml +++ b/dao/src/test/resources/dbunit/event.xml @@ -3,7 +3,7 @@ id="be41c7a2-31f5-11e7-9cfd-2786e6aa2046" tenant_id="be41c7a0-31f5-11e7-9cfd-2786e6aa2046" entity_id="be41c7a1-31f5-11e7-9cfd-2786e6aa2046" - entity_type="7" + entity_type="DEVICE" event_type="STATS" event_uid="be41c7a3-31f5-11e7-9cfd-2786e6aa2046" /> @@ -11,7 +11,7 @@ id="be41c7a4-31f5-11e7-9cfd-2786e6aa2046" tenant_id="be41c7a0-31f5-11e7-9cfd-2786e6aa2046" entity_id="be41c7a1-31f5-11e7-9cfd-2786e6aa2046" - entity_type="7" + entity_type="DEVICE" event_type="STATS" event_uid="be41c7a5-31f5-11e7-9cfd-2786e6aa2046" /> diff --git a/dao/src/test/resources/dbunit/user.xml b/dao/src/test/resources/dbunit/user.xml index 4b704a0a2e..2127202cad 100644 --- a/dao/src/test/resources/dbunit/user.xml +++ b/dao/src/test/resources/dbunit/user.xml @@ -2,7 +2,7 @@ \ No newline at end of file