Merge pull request #104 from thingsboard/dao-refactoring-vs
ModelConstants replaced with static imports
This commit is contained in:
commit
79af42e113
@ -95,6 +95,7 @@ coap:
|
||||
|
||||
# Cassandra driver configuration parameters
|
||||
cassandra:
|
||||
enabled: "${CASSANDRA_ENABLED:true}"
|
||||
# Thingsboard cluster name
|
||||
cluster_name: "${CASSANDRA_CLUSTER_NAME:Thingsboard Cluster}"
|
||||
# Thingsboard keyspace name
|
||||
@ -189,11 +190,7 @@ updates:
|
||||
# Enable/disable updates checking.
|
||||
enabled: "${UPDATES_ENABLED:true}"
|
||||
|
||||
cassandra:
|
||||
enabled: "${CASSANDRA_ENABLED:true}"
|
||||
|
||||
# SQL DAO Configuration
|
||||
|
||||
sql:
|
||||
enabled: "${SQL_ENABLED:false}"
|
||||
datasource:
|
||||
|
||||
@ -23,43 +23,44 @@ 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.ModelConstants;
|
||||
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.*;
|
||||
|
||||
/**
|
||||
* @author Andrew Shvayka
|
||||
*/
|
||||
@Table(name = ModelConstants.COMPONENT_DESCRIPTOR_COLUMN_FAMILY_NAME)
|
||||
@Table(name = COMPONENT_DESCRIPTOR_COLUMN_FAMILY_NAME)
|
||||
public class ComponentDescriptorEntity implements SearchTextEntity<ComponentDescriptor> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@PartitionKey
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@Column(name = ModelConstants.COMPONENT_DESCRIPTOR_TYPE_PROPERTY)
|
||||
@Column(name = COMPONENT_DESCRIPTOR_TYPE_PROPERTY)
|
||||
private ComponentType type;
|
||||
|
||||
@Column(name = ModelConstants.COMPONENT_DESCRIPTOR_SCOPE_PROPERTY)
|
||||
@Column(name = COMPONENT_DESCRIPTOR_SCOPE_PROPERTY)
|
||||
private ComponentScope scope;
|
||||
|
||||
@Column(name = ModelConstants.COMPONENT_DESCRIPTOR_NAME_PROPERTY)
|
||||
@Column(name = COMPONENT_DESCRIPTOR_NAME_PROPERTY)
|
||||
private String name;
|
||||
|
||||
@Column(name = ModelConstants.COMPONENT_DESCRIPTOR_CLASS_PROPERTY)
|
||||
@Column(name = COMPONENT_DESCRIPTOR_CLASS_PROPERTY)
|
||||
private String clazz;
|
||||
|
||||
@Column(name = ModelConstants.COMPONENT_DESCRIPTOR_CONFIGURATION_DESCRIPTOR_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = COMPONENT_DESCRIPTOR_CONFIGURATION_DESCRIPTOR_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode configurationDescriptor;
|
||||
|
||||
@Column(name = ModelConstants.COMPONENT_DESCRIPTOR_ACTIONS_PROPERTY)
|
||||
@Column(name = COMPONENT_DESCRIPTOR_ACTIONS_PROPERTY)
|
||||
private String actions;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
public ComponentDescriptorEntity() {
|
||||
|
||||
@ -20,7 +20,6 @@ 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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.SearchTextEntity;
|
||||
import org.thingsboard.server.dao.model.type.JsonCodec;
|
||||
|
||||
@ -31,51 +30,53 @@ import com.datastax.driver.mapping.annotations.Table;
|
||||
import com.datastax.driver.mapping.annotations.Transient;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
|
||||
@Table(name = ModelConstants.CUSTOMER_COLUMN_FAMILY_NAME)
|
||||
import static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
@Table(name = CUSTOMER_COLUMN_FAMILY_NAME)
|
||||
public final class CustomerEntity implements SearchTextEntity<Customer> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = -7732527103760948490L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@PartitionKey(value = 1)
|
||||
@Column(name = ModelConstants.CUSTOMER_TENANT_ID_PROPERTY)
|
||||
@Column(name = CUSTOMER_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@Column(name = ModelConstants.CUSTOMER_TITLE_PROPERTY)
|
||||
@Column(name = CUSTOMER_TITLE_PROPERTY)
|
||||
private String title;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
@Column(name = ModelConstants.COUNTRY_PROPERTY)
|
||||
@Column(name = COUNTRY_PROPERTY)
|
||||
private String country;
|
||||
|
||||
@Column(name = ModelConstants.STATE_PROPERTY)
|
||||
@Column(name = STATE_PROPERTY)
|
||||
private String state;
|
||||
|
||||
@Column(name = ModelConstants.CITY_PROPERTY)
|
||||
@Column(name = CITY_PROPERTY)
|
||||
private String city;
|
||||
|
||||
@Column(name = ModelConstants.ADDRESS_PROPERTY)
|
||||
@Column(name = ADDRESS_PROPERTY)
|
||||
private String address;
|
||||
|
||||
@Column(name = ModelConstants.ADDRESS2_PROPERTY)
|
||||
@Column(name = ADDRESS2_PROPERTY)
|
||||
private String address2;
|
||||
|
||||
@Column(name = ModelConstants.ZIP_PROPERTY)
|
||||
@Column(name = ZIP_PROPERTY)
|
||||
private String zip;
|
||||
|
||||
@Column(name = ModelConstants.PHONE_PROPERTY)
|
||||
@Column(name = PHONE_PROPERTY)
|
||||
private String phone;
|
||||
|
||||
@Column(name = ModelConstants.EMAIL_PROPERTY)
|
||||
@Column(name = EMAIL_PROPERTY)
|
||||
private String email;
|
||||
|
||||
@Column(name = ModelConstants.CUSTOMER_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = CUSTOMER_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode additionalInfo;
|
||||
|
||||
public CustomerEntity() {
|
||||
|
||||
@ -21,7 +21,6 @@ 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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.SearchTextEntity;
|
||||
import org.thingsboard.server.dao.model.type.JsonCodec;
|
||||
|
||||
@ -32,31 +31,33 @@ import com.datastax.driver.mapping.annotations.Table;
|
||||
import com.datastax.driver.mapping.annotations.Transient;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
|
||||
@Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME)
|
||||
import static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
@Table(name = DASHBOARD_COLUMN_FAMILY_NAME)
|
||||
public final class DashboardEntity implements SearchTextEntity<Dashboard> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = 2998395951247446191L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@PartitionKey(value = 1)
|
||||
@Column(name = ModelConstants.DASHBOARD_TENANT_ID_PROPERTY)
|
||||
@Column(name = DASHBOARD_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@PartitionKey(value = 2)
|
||||
@Column(name = ModelConstants.DASHBOARD_CUSTOMER_ID_PROPERTY)
|
||||
@Column(name = DASHBOARD_CUSTOMER_ID_PROPERTY)
|
||||
private UUID customerId;
|
||||
|
||||
@Column(name = ModelConstants.DASHBOARD_TITLE_PROPERTY)
|
||||
@Column(name = DASHBOARD_TITLE_PROPERTY)
|
||||
private String title;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
@Column(name = ModelConstants.DASHBOARD_CONFIGURATION_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = DASHBOARD_CONFIGURATION_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode configuration;
|
||||
|
||||
public DashboardEntity() {
|
||||
|
||||
@ -21,7 +21,6 @@ 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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.SearchTextEntity;
|
||||
|
||||
import com.datastax.driver.core.utils.UUIDs;
|
||||
@ -30,28 +29,30 @@ import com.datastax.driver.mapping.annotations.PartitionKey;
|
||||
import com.datastax.driver.mapping.annotations.Table;
|
||||
import com.datastax.driver.mapping.annotations.Transient;
|
||||
|
||||
@Table(name = ModelConstants.DASHBOARD_COLUMN_FAMILY_NAME)
|
||||
import static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
@Table(name = DASHBOARD_COLUMN_FAMILY_NAME)
|
||||
public class DashboardInfoEntity implements SearchTextEntity<DashboardInfo> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = 2998395951247446191L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@PartitionKey(value = 1)
|
||||
@Column(name = ModelConstants.DASHBOARD_TENANT_ID_PROPERTY)
|
||||
@Column(name = DASHBOARD_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@PartitionKey(value = 2)
|
||||
@Column(name = ModelConstants.DASHBOARD_CUSTOMER_ID_PROPERTY)
|
||||
@Column(name = DASHBOARD_CUSTOMER_ID_PROPERTY)
|
||||
private UUID customerId;
|
||||
|
||||
@Column(name = ModelConstants.DASHBOARD_TITLE_PROPERTY)
|
||||
@Column(name = DASHBOARD_TITLE_PROPERTY)
|
||||
private String title;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
public DashboardInfoEntity() {
|
||||
|
||||
@ -22,7 +22,6 @@ 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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.type.DeviceCredentialsTypeCodec;
|
||||
|
||||
import com.datastax.driver.core.utils.UUIDs;
|
||||
@ -31,26 +30,28 @@ import com.datastax.driver.mapping.annotations.PartitionKey;
|
||||
import com.datastax.driver.mapping.annotations.Table;
|
||||
import com.datastax.driver.mapping.annotations.Transient;
|
||||
|
||||
@Table(name = ModelConstants.DEVICE_CREDENTIALS_COLUMN_FAMILY_NAME)
|
||||
import static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
@Table(name = DEVICE_CREDENTIALS_COLUMN_FAMILY_NAME)
|
||||
public final class DeviceCredentialsEntity implements BaseEntity<DeviceCredentials> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = -2667310560260623272L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@Column(name = ModelConstants.DEVICE_CREDENTIALS_DEVICE_ID_PROPERTY)
|
||||
@Column(name = DEVICE_CREDENTIALS_DEVICE_ID_PROPERTY)
|
||||
private UUID deviceId;
|
||||
|
||||
@Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_TYPE_PROPERTY, codec = DeviceCredentialsTypeCodec.class)
|
||||
@Column(name = DEVICE_CREDENTIALS_CREDENTIALS_TYPE_PROPERTY, codec = DeviceCredentialsTypeCodec.class)
|
||||
private DeviceCredentialsType credentialsType;
|
||||
|
||||
@Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_ID_PROPERTY)
|
||||
@Column(name = DEVICE_CREDENTIALS_CREDENTIALS_ID_PROPERTY)
|
||||
private String credentialsId;
|
||||
|
||||
@Column(name = ModelConstants.DEVICE_CREDENTIALS_CREDENTIALS_VALUE_PROPERTY)
|
||||
@Column(name = DEVICE_CREDENTIALS_CREDENTIALS_VALUE_PROPERTY)
|
||||
private String credentialsValue;
|
||||
|
||||
public DeviceCredentialsEntity() {
|
||||
|
||||
@ -25,37 +25,38 @@ import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.id.CustomerId;
|
||||
import org.thingsboard.server.common.data.id.DeviceId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.dao.model.ModelConstants;
|
||||
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;
|
||||
|
||||
@Table(name = ModelConstants.DEVICE_COLUMN_FAMILY_NAME)
|
||||
@Table(name = DEVICE_COLUMN_FAMILY_NAME)
|
||||
public final class DeviceEntity implements SearchTextEntity<Device> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = -1265181166886910152L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@PartitionKey(value = 1)
|
||||
@Column(name = ModelConstants.DEVICE_TENANT_ID_PROPERTY)
|
||||
@Column(name = DEVICE_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@PartitionKey(value = 2)
|
||||
@Column(name = ModelConstants.DEVICE_CUSTOMER_ID_PROPERTY)
|
||||
@Column(name = DEVICE_CUSTOMER_ID_PROPERTY)
|
||||
private UUID customerId;
|
||||
|
||||
@Column(name = ModelConstants.DEVICE_NAME_PROPERTY)
|
||||
@Column(name = DEVICE_NAME_PROPERTY)
|
||||
private String name;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
@Column(name = ModelConstants.DEVICE_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = DEVICE_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode additionalInfo;
|
||||
|
||||
public DeviceEntity() {
|
||||
|
||||
@ -24,10 +24,11 @@ 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.dao.model.BaseEntity;
|
||||
import org.thingsboard.server.dao.model.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.type.EntityTypeCodec;
|
||||
import org.thingsboard.server.dao.model.type.JsonCodec;
|
||||
|
||||
import static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
@ -35,36 +36,36 @@ import java.util.UUID;
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@Table(name = ModelConstants.DEVICE_COLUMN_FAMILY_NAME)
|
||||
@Table(name = DEVICE_COLUMN_FAMILY_NAME)
|
||||
public class EventEntity implements BaseEntity<Event> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = -1265181166886910153L;
|
||||
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@PartitionKey()
|
||||
@Column(name = ModelConstants.EVENT_TENANT_ID_PROPERTY)
|
||||
@Column(name = EVENT_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@PartitionKey(value = 1)
|
||||
@Column(name = ModelConstants.EVENT_ENTITY_TYPE_PROPERTY, codec = EntityTypeCodec.class)
|
||||
@Column(name = EVENT_ENTITY_TYPE_PROPERTY, codec = EntityTypeCodec.class)
|
||||
private EntityType entityType;
|
||||
|
||||
@PartitionKey(value = 2)
|
||||
@Column(name = ModelConstants.EVENT_ENTITY_ID_PROPERTY)
|
||||
@Column(name = EVENT_ENTITY_ID_PROPERTY)
|
||||
private UUID entityId;
|
||||
|
||||
@ClusteringColumn()
|
||||
@Column(name = ModelConstants.EVENT_TYPE_PROPERTY)
|
||||
@Column(name = EVENT_TYPE_PROPERTY)
|
||||
private String eventType;
|
||||
|
||||
@ClusteringColumn(value = 1)
|
||||
@Column(name = ModelConstants.EVENT_UID_PROPERTY)
|
||||
@Column(name = EVENT_UID_PROPERTY)
|
||||
private String eventUId;
|
||||
|
||||
@Column(name = ModelConstants.EVENT_BODY_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = EVENT_BODY_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode body;
|
||||
|
||||
public EventEntity(Event event) {
|
||||
|
||||
@ -22,50 +22,51 @@ 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.ModelConstants;
|
||||
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;
|
||||
|
||||
@Table(name = ModelConstants.PLUGIN_COLUMN_FAMILY_NAME)
|
||||
@Table(name = PLUGIN_COLUMN_FAMILY_NAME)
|
||||
public class PluginMetaDataEntity implements SearchTextEntity<PluginMetaData> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = -5231612734979707866L;
|
||||
|
||||
@PartitionKey
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@Column(name = ModelConstants.PLUGIN_API_TOKEN_PROPERTY)
|
||||
@Column(name = PLUGIN_API_TOKEN_PROPERTY)
|
||||
private String apiToken;
|
||||
|
||||
@ClusteringColumn
|
||||
@Column(name = ModelConstants.PLUGIN_TENANT_ID_PROPERTY)
|
||||
@Column(name = PLUGIN_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@Column(name = ModelConstants.PLUGIN_NAME_PROPERTY)
|
||||
@Column(name = PLUGIN_NAME_PROPERTY)
|
||||
private String name;
|
||||
|
||||
@Column(name = ModelConstants.PLUGIN_CLASS_PROPERTY)
|
||||
@Column(name = PLUGIN_CLASS_PROPERTY)
|
||||
private String clazz;
|
||||
|
||||
@Column(name = ModelConstants.PLUGIN_ACCESS_PROPERTY)
|
||||
@Column(name = PLUGIN_ACCESS_PROPERTY)
|
||||
private boolean publicAccess;
|
||||
|
||||
@Column(name = ModelConstants.PLUGIN_STATE_PROPERTY, codec = ComponentLifecycleStateCodec.class)
|
||||
@Column(name = PLUGIN_STATE_PROPERTY, codec = ComponentLifecycleStateCodec.class)
|
||||
private ComponentLifecycleState state;
|
||||
|
||||
@Column(name = ModelConstants.PLUGIN_CONFIGURATION_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = PLUGIN_CONFIGURATION_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode configuration;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
@Column(name = ModelConstants.ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode additionalInfo;
|
||||
|
||||
public PluginMetaDataEntity() {
|
||||
|
||||
@ -26,43 +26,44 @@ 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.ModelConstants;
|
||||
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;
|
||||
|
||||
@Table(name = ModelConstants.RULE_COLUMN_FAMILY_NAME)
|
||||
@Table(name = RULE_COLUMN_FAMILY_NAME)
|
||||
public class RuleMetaDataEntity implements SearchTextEntity<RuleMetaData> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = 4011728715100800304L;
|
||||
@PartitionKey
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
@ClusteringColumn
|
||||
@Column(name = ModelConstants.RULE_TENANT_ID_PROPERTY)
|
||||
@Column(name = RULE_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
@Column(name = ModelConstants.RULE_NAME_PROPERTY)
|
||||
@Column(name = RULE_NAME_PROPERTY)
|
||||
private String name;
|
||||
@Column(name = ModelConstants.RULE_STATE_PROPERTY, codec = ComponentLifecycleStateCodec.class)
|
||||
@Column(name = RULE_STATE_PROPERTY, codec = ComponentLifecycleStateCodec.class)
|
||||
private ComponentLifecycleState state;
|
||||
@Column(name = ModelConstants.RULE_WEIGHT_PROPERTY)
|
||||
@Column(name = RULE_WEIGHT_PROPERTY)
|
||||
private int weight;
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
@Column(name = ModelConstants.RULE_PLUGIN_TOKEN_PROPERTY)
|
||||
@Column(name = RULE_PLUGIN_TOKEN_PROPERTY)
|
||||
private String pluginToken;
|
||||
@Column(name = ModelConstants.RULE_FILTERS, codec = JsonCodec.class)
|
||||
@Column(name = RULE_FILTERS, codec = JsonCodec.class)
|
||||
private JsonNode filters;
|
||||
@Column(name = ModelConstants.RULE_PROCESSOR, codec = JsonCodec.class)
|
||||
@Column(name = RULE_PROCESSOR, codec = JsonCodec.class)
|
||||
private JsonNode processor;
|
||||
@Column(name = ModelConstants.RULE_ACTION, codec = JsonCodec.class)
|
||||
@Column(name = RULE_ACTION, codec = JsonCodec.class)
|
||||
private JsonNode action;
|
||||
@Column(name = ModelConstants.ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode additionalInfo;
|
||||
|
||||
public RuleMetaDataEntity() {
|
||||
|
||||
@ -19,7 +19,6 @@ 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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.SearchTextEntity;
|
||||
import org.thingsboard.server.dao.model.type.JsonCodec;
|
||||
|
||||
@ -29,51 +28,52 @@ 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 static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
@Table(name = ModelConstants.TENANT_COLUMN_FAMILY_NAME)
|
||||
@Table(name = TENANT_COLUMN_FAMILY_NAME)
|
||||
public final class TenantEntity implements SearchTextEntity<Tenant> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = -6198635547142409206L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@Column(name = ModelConstants.TENANT_TITLE_PROPERTY)
|
||||
@Column(name = TENANT_TITLE_PROPERTY)
|
||||
private String title;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
@Column(name = ModelConstants.TENANT_REGION_PROPERTY)
|
||||
@Column(name = TENANT_REGION_PROPERTY)
|
||||
private String region;
|
||||
|
||||
@Column(name = ModelConstants.COUNTRY_PROPERTY)
|
||||
@Column(name = COUNTRY_PROPERTY)
|
||||
private String country;
|
||||
|
||||
@Column(name = ModelConstants.STATE_PROPERTY)
|
||||
@Column(name = STATE_PROPERTY)
|
||||
private String state;
|
||||
|
||||
@Column(name = ModelConstants.CITY_PROPERTY)
|
||||
@Column(name = CITY_PROPERTY)
|
||||
private String city;
|
||||
|
||||
@Column(name = ModelConstants.ADDRESS_PROPERTY)
|
||||
@Column(name = ADDRESS_PROPERTY)
|
||||
private String address;
|
||||
|
||||
@Column(name = ModelConstants.ADDRESS2_PROPERTY)
|
||||
@Column(name = ADDRESS2_PROPERTY)
|
||||
private String address2;
|
||||
|
||||
@Column(name = ModelConstants.ZIP_PROPERTY)
|
||||
@Column(name = ZIP_PROPERTY)
|
||||
private String zip;
|
||||
|
||||
@Column(name = ModelConstants.PHONE_PROPERTY)
|
||||
@Column(name = PHONE_PROPERTY)
|
||||
private String phone;
|
||||
|
||||
@Column(name = ModelConstants.EMAIL_PROPERTY)
|
||||
@Column(name = EMAIL_PROPERTY)
|
||||
private String email;
|
||||
|
||||
@Column(name = ModelConstants.TENANT_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = TENANT_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode additionalInfo;
|
||||
|
||||
public TenantEntity() {
|
||||
|
||||
@ -27,31 +27,31 @@ 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.dao.model.BaseEntity;
|
||||
import org.thingsboard.server.dao.model.ModelConstants;
|
||||
import static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
@Table(name = ModelConstants.USER_CREDENTIALS_COLUMN_FAMILY_NAME)
|
||||
@Table(name = USER_CREDENTIALS_COLUMN_FAMILY_NAME)
|
||||
public final class UserCredentialsEntity implements BaseEntity<UserCredentials> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = 1348221414123438374L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@Column(name = ModelConstants.USER_CREDENTIALS_USER_ID_PROPERTY)
|
||||
@Column(name = USER_CREDENTIALS_USER_ID_PROPERTY)
|
||||
private UUID userId;
|
||||
|
||||
@Column(name = ModelConstants.USER_CREDENTIALS_ENABLED_PROPERTY)
|
||||
@Column(name = USER_CREDENTIALS_ENABLED_PROPERTY)
|
||||
private boolean enabled;
|
||||
|
||||
@Column(name = ModelConstants.USER_CREDENTIALS_PASSWORD_PROPERTY)
|
||||
@Column(name = USER_CREDENTIALS_PASSWORD_PROPERTY)
|
||||
private String password;
|
||||
|
||||
@Column(name = ModelConstants.USER_CREDENTIALS_ACTIVATE_TOKEN_PROPERTY)
|
||||
@Column(name = USER_CREDENTIALS_ACTIVATE_TOKEN_PROPERTY)
|
||||
private String activateToken;
|
||||
|
||||
@Column(name = ModelConstants.USER_CREDENTIALS_RESET_TOKEN_PROPERTY)
|
||||
@Column(name = USER_CREDENTIALS_RESET_TOKEN_PROPERTY)
|
||||
private String resetToken;
|
||||
|
||||
public UserCredentialsEntity() {
|
||||
|
||||
@ -22,7 +22,6 @@ 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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.SearchTextEntity;
|
||||
import org.thingsboard.server.dao.model.type.AuthorityCodec;
|
||||
import org.thingsboard.server.dao.model.type.JsonCodec;
|
||||
@ -33,42 +32,43 @@ 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 static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
@Table(name = ModelConstants.USER_COLUMN_FAMILY_NAME)
|
||||
@Table(name = USER_COLUMN_FAMILY_NAME)
|
||||
public final class UserEntity implements SearchTextEntity<User> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = -7740338274987723489L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@PartitionKey(value = 1)
|
||||
@Column(name = ModelConstants.USER_TENANT_ID_PROPERTY)
|
||||
@Column(name = USER_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@PartitionKey(value = 2)
|
||||
@Column(name = ModelConstants.USER_CUSTOMER_ID_PROPERTY)
|
||||
@Column(name = USER_CUSTOMER_ID_PROPERTY)
|
||||
private UUID customerId;
|
||||
|
||||
@PartitionKey(value = 3)
|
||||
@Column(name = ModelConstants.USER_AUTHORITY_PROPERTY, codec = AuthorityCodec.class)
|
||||
@Column(name = USER_AUTHORITY_PROPERTY, codec = AuthorityCodec.class)
|
||||
private Authority authority;
|
||||
|
||||
@Column(name = ModelConstants.USER_EMAIL_PROPERTY)
|
||||
@Column(name = USER_EMAIL_PROPERTY)
|
||||
private String email;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
@Column(name = ModelConstants.USER_FIRST_NAME_PROPERTY)
|
||||
@Column(name = USER_FIRST_NAME_PROPERTY)
|
||||
private String firstName;
|
||||
|
||||
@Column(name = ModelConstants.USER_LAST_NAME_PROPERTY)
|
||||
@Column(name = USER_LAST_NAME_PROPERTY)
|
||||
private String lastName;
|
||||
|
||||
@Column(name = ModelConstants.USER_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = USER_ADDITIONAL_INFO_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode additionalInfo;
|
||||
|
||||
public UserEntity() {
|
||||
|
||||
@ -25,36 +25,36 @@ 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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.type.JsonCodec;
|
||||
import static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@Table(name = ModelConstants.WIDGET_TYPE_COLUMN_FAMILY_NAME)
|
||||
@Table(name = WIDGET_TYPE_COLUMN_FAMILY_NAME)
|
||||
public final class WidgetTypeEntity implements BaseEntity<WidgetType> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = 3591054897680176342L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@PartitionKey(value = 1)
|
||||
@Column(name = ModelConstants.WIDGET_TYPE_TENANT_ID_PROPERTY)
|
||||
@Column(name = WIDGET_TYPE_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@PartitionKey(value = 2)
|
||||
@Column(name = ModelConstants.WIDGET_TYPE_BUNDLE_ALIAS_PROPERTY)
|
||||
@Column(name = WIDGET_TYPE_BUNDLE_ALIAS_PROPERTY)
|
||||
private String bundleAlias;
|
||||
|
||||
@Column(name = ModelConstants.WIDGET_TYPE_ALIAS_PROPERTY)
|
||||
@Column(name = WIDGET_TYPE_ALIAS_PROPERTY)
|
||||
private String alias;
|
||||
|
||||
@Column(name = ModelConstants.WIDGET_TYPE_NAME_PROPERTY)
|
||||
@Column(name = WIDGET_TYPE_NAME_PROPERTY)
|
||||
private String name;
|
||||
|
||||
@Column(name = ModelConstants.WIDGET_TYPE_DESCRIPTOR_PROPERTY, codec = JsonCodec.class)
|
||||
@Column(name = WIDGET_TYPE_DESCRIPTOR_PROPERTY, codec = JsonCodec.class)
|
||||
private JsonNode descriptor;
|
||||
|
||||
public WidgetTypeEntity() {
|
||||
@ -157,7 +157,7 @@ public final class WidgetTypeEntity implements BaseEntity<WidgetType> {
|
||||
sb.append(", tenantId=").append(tenantId);
|
||||
sb.append(", bundleAlias='").append(bundleAlias).append('\'');
|
||||
sb.append(", alias='").append(alias).append('\'');
|
||||
sb.append(", name='").append(name).append('\'');
|
||||
sb.append(", name ='").append(name).append('\'');
|
||||
sb.append(", descriptor=").append(descriptor);
|
||||
sb.append('}');
|
||||
return sb.toString();
|
||||
|
||||
@ -24,36 +24,36 @@ import com.datastax.driver.mapping.annotations.Transient;
|
||||
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.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.SearchTextEntity;
|
||||
import static org.thingsboard.server.dao.model.ModelConstants.*;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.UUID;
|
||||
|
||||
@Table(name = ModelConstants.WIDGETS_BUNDLE_COLUMN_FAMILY_NAME)
|
||||
@Table(name = WIDGETS_BUNDLE_COLUMN_FAMILY_NAME)
|
||||
public final class WidgetsBundleEntity implements SearchTextEntity<WidgetsBundle> {
|
||||
|
||||
@Transient
|
||||
private static final long serialVersionUID = -8842195928585650849L;
|
||||
|
||||
@PartitionKey(value = 0)
|
||||
@Column(name = ModelConstants.ID_PROPERTY)
|
||||
@Column(name = ID_PROPERTY)
|
||||
private UUID id;
|
||||
|
||||
@PartitionKey(value = 1)
|
||||
@Column(name = ModelConstants.WIDGETS_BUNDLE_TENANT_ID_PROPERTY)
|
||||
@Column(name = WIDGETS_BUNDLE_TENANT_ID_PROPERTY)
|
||||
private UUID tenantId;
|
||||
|
||||
@Column(name = ModelConstants.WIDGETS_BUNDLE_ALIAS_PROPERTY)
|
||||
@Column(name = WIDGETS_BUNDLE_ALIAS_PROPERTY)
|
||||
private String alias;
|
||||
|
||||
@Column(name = ModelConstants.WIDGETS_BUNDLE_TITLE_PROPERTY)
|
||||
@Column(name = WIDGETS_BUNDLE_TITLE_PROPERTY)
|
||||
private String title;
|
||||
|
||||
@Column(name = ModelConstants.SEARCH_TEXT_PROPERTY)
|
||||
@Column(name = SEARCH_TEXT_PROPERTY)
|
||||
private String searchText;
|
||||
|
||||
@Column(name = ModelConstants.WIDGETS_BUNDLE_IMAGE_PROPERTY)
|
||||
@Column(name = WIDGETS_BUNDLE_IMAGE_PROPERTY)
|
||||
private ByteBuffer image;
|
||||
|
||||
public WidgetsBundleEntity() {
|
||||
|
||||
@ -33,7 +33,7 @@ import java.util.UUID;
|
||||
@Slf4j
|
||||
public abstract class JpaAbstractDao<E extends BaseEntity<D>, D> implements Dao<D> {
|
||||
|
||||
protected abstract Class<E> getColumnFamilyClass();
|
||||
protected abstract Class<E> getEntityClass();
|
||||
|
||||
protected abstract String getColumnFamilyName();
|
||||
|
||||
@ -47,7 +47,7 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D> implements Dao<
|
||||
public D save(D domain) {
|
||||
E entity;
|
||||
try {
|
||||
entity = getColumnFamilyClass().getConstructor(domain.getClass()).newInstance(domain);
|
||||
entity = getEntityClass().getConstructor(domain.getClass()).newInstance(domain);
|
||||
} catch (Exception e) {
|
||||
log.error("Can't create entity for domain object {}", domain, e);
|
||||
throw new IllegalArgumentException("Can't create entity for domain object {" + domain + "}", e);
|
||||
|
||||
@ -19,10 +19,14 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.thingsboard.server.common.data.User;
|
||||
import org.thingsboard.server.common.data.page.TextPageLink;
|
||||
import org.thingsboard.server.dao.DaoUtil;
|
||||
import org.thingsboard.server.dao.model.ModelConstants;
|
||||
import org.thingsboard.server.dao.model.sql.UserEntity;
|
||||
import org.thingsboard.server.dao.sql.JpaAbstractDao;
|
||||
import org.thingsboard.server.dao.user.UserDao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
@ -30,13 +34,13 @@ import java.util.UUID;
|
||||
*/
|
||||
@Component
|
||||
@ConditionalOnProperty(prefix="sql", value="enabled",havingValue = "true", matchIfMissing = false)
|
||||
public class JpaUserDao extends JpaAbstractDao<UserEntity, User> {
|
||||
public class JpaUserDao extends JpaAbstractDao<UserEntity, User> implements UserDao {
|
||||
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Override
|
||||
protected Class<UserEntity> getColumnFamilyClass() {
|
||||
protected Class<UserEntity> getEntityClass() {
|
||||
return UserEntity.class;
|
||||
}
|
||||
|
||||
@ -49,4 +53,19 @@ public class JpaUserDao extends JpaAbstractDao<UserEntity, User> {
|
||||
protected JpaRepository<UserEntity, UUID> getCrudRepository() {
|
||||
return userRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public User findByEmail(String email) {
|
||||
return DaoUtil.getData(userRepository.findByEmail(email));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<User> findTenantAdmins(UUID tenantId, TextPageLink pageLink) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<User> findCustomerUsers(UUID tenantId, UUID customerId, TextPageLink pageLink) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,12 +15,18 @@
|
||||
*/
|
||||
package org.thingsboard.server.dao.sql.user;
|
||||
|
||||
import org.thingsboard.server.common.data.User;
|
||||
import org.thingsboard.server.common.data.page.TextPageLink;
|
||||
import org.thingsboard.server.dao.model.sql.UserEntity;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Valerii Sosliuk
|
||||
*/
|
||||
public interface UserRepository extends JpaRepository<UserEntity, UUID> {
|
||||
|
||||
UserEntity findByEmail(String email);
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user