From 549843a55d3710502e1dac12b313e243a679b43e Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 2 Mar 2026 11:16:36 +0200 Subject: [PATCH] Fixed save notes models --- .../server/common/data/rule/RuleChain.java | 4 ---- .../thingsboard/server/dao/model/ModelConstants.java | 1 - .../server/dao/model/sql/RuleChainEntity.java | 5 ----- .../server/dao/rule/BaseRuleChainService.java | 12 +++++++----- dao/src/main/resources/sql/schema-entities.sql | 1 - 5 files changed, 7 insertions(+), 16 deletions(-) diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleChain.java b/common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleChain.java index 444dca319d..4d8bb35919 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleChain.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleChain.java @@ -61,9 +61,6 @@ public class RuleChain extends BaseDataWithAdditionalInfo implement private RuleChainId externalId; private Long version; - @JsonIgnore - private String notes; - @JsonIgnore private byte[] configurationBytes; @@ -85,7 +82,6 @@ public class RuleChain extends BaseDataWithAdditionalInfo implement this.setConfiguration(ruleChain.getConfiguration()); this.setExternalId(ruleChain.getExternalId()); this.version = ruleChain.getVersion(); - this.notes = ruleChain.getNotes(); } @Override 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 6eb14092ae..9f9e4a67e9 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 @@ -420,7 +420,6 @@ public class ModelConstants { public static final String RULE_CHAIN_FIRST_RULE_NODE_ID_PROPERTY = "first_rule_node_id"; public static final String RULE_CHAIN_ROOT_PROPERTY = "root"; public static final String RULE_CHAIN_CONFIGURATION_PROPERTY = "configuration"; - public static final String RULE_CHAIN_NOTES_PROPERTY = "notes"; /** * Rule node constants. diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleChainEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleChainEntity.java index e408f41431..5b83eb6f72 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleChainEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleChainEntity.java @@ -69,9 +69,6 @@ public class RuleChainEntity extends BaseVersionedEntity { @Column(name = ModelConstants.ADDITIONAL_INFO_PROPERTY) private JsonNode additionalInfo; - @Column(name = ModelConstants.RULE_CHAIN_NOTES_PROPERTY, columnDefinition = "TEXT") - private String notes; - @Column(name = ModelConstants.EXTERNAL_ID_PROPERTY) private UUID externalId; @@ -90,7 +87,6 @@ public class RuleChainEntity extends BaseVersionedEntity { this.debugMode = ruleChain.isDebugMode(); this.configuration = ruleChain.getConfiguration(); this.additionalInfo = ruleChain.getAdditionalInfo(); - this.notes = ruleChain.getNotes(); if (ruleChain.getExternalId() != null) { this.externalId = ruleChain.getExternalId().getId(); } @@ -111,7 +107,6 @@ public class RuleChainEntity extends BaseVersionedEntity { ruleChain.setDebugMode(debugMode); ruleChain.setConfiguration(configuration); ruleChain.setAdditionalInfo(additionalInfo); - ruleChain.setNotes(notes); if (externalId != null) { ruleChain.setExternalId(new RuleChainId(externalId)); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java index 3de45bcc15..8816796c8e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java @@ -318,8 +318,9 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC if (!relations.isEmpty()) { relationService.saveRelations(tenantId, relations); } - ruleChain.setNotes(ruleChainMetaData.getNotes() != null && !ruleChainMetaData.getNotes().isEmpty() - ? JacksonUtil.toString(ruleChainMetaData.getNotes()) : null); + ruleChain.setConfiguration(CollectionUtils.isNotEmpty(ruleChainMetaData.getNotes()) + ? JacksonUtil.newObjectNode().set("notes", JacksonUtil.valueToTree(ruleChainMetaData.getNotes())) + : null); ruleChain = ruleChainDao.save(tenantId, ruleChain); eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(tenantId).entity(ruleChain) .entityId(ruleChain.getId()).broadcastEvent(publishSaveEvent).build()); @@ -380,9 +381,10 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC Collections.sort(ruleChainMetaData.getConnections(), Comparator.comparingInt(NodeConnectionInfo::getFromIndex) .thenComparing(NodeConnectionInfo::getToIndex).thenComparing(NodeConnectionInfo::getType)); } - if (ruleChain.getNotes() != null) { - ruleChainMetaData.setNotes(JacksonUtil.fromString(ruleChain.getNotes(), new TypeReference>() {})); - } + ruleChainMetaData.setNotes(Optional.ofNullable(ruleChain.getConfiguration()) + .filter(c -> c.has("notes")) + .map(c -> JacksonUtil.convertValue(c.get("notes"), new TypeReference>() {})) + .orElse(null)); return ruleChainMetaData; } diff --git a/dao/src/main/resources/sql/schema-entities.sql b/dao/src/main/resources/sql/schema-entities.sql index c32ea29d10..3d9c9f17e6 100644 --- a/dao/src/main/resources/sql/schema-entities.sql +++ b/dao/src/main/resources/sql/schema-entities.sql @@ -169,7 +169,6 @@ CREATE TABLE IF NOT EXISTS rule_chain ( debug_mode boolean, tenant_id uuid, external_id uuid, - notes text, version BIGINT DEFAULT 1, CONSTRAINT rule_chain_external_id_unq_key UNIQUE (tenant_id, external_id) );