This is an automated email from the ASF dual-hosted git repository.

lizhimins pushed a commit to branch rocketmq-studio
in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git


The following commit(s) were added to refs/heads/rocketmq-studio by this push:
     new fc10f7e9 fix(persistence): make read-check-write repository saves 
transactional (#1141)
fc10f7e9 is described below

commit fc10f7e9dba5f3adb789120cbadd742ae03333d8
Author: yyqdbngt <[email protected]>
AuthorDate: Fri Aug 7 15:29:19 2026 +0800

    fix(persistence): make read-check-write repository saves transactional 
(#1141)
    
    Co-authored-by: yyqdbngt <[email protected]>
---
 .../rocketmq/studio/cluster/k8s/MybatisPlusK8sCertRepository.java       | 2 ++
 .../apache/rocketmq/studio/instance/MybatisPlusInstanceRepository.java  | 2 ++
 .../apache/rocketmq/studio/ops/alert/MybatisPlusAlertRepository.java    | 2 ++
 .../rocketmq/studio/persistence/MybatisPlusSettingsRepository.java      | 2 ++
 4 files changed, 8 insertions(+)

diff --git 
a/server/src/main/java/org/apache/rocketmq/studio/cluster/k8s/MybatisPlusK8sCertRepository.java
 
b/server/src/main/java/org/apache/rocketmq/studio/cluster/k8s/MybatisPlusK8sCertRepository.java
index 686f4d1e..87ed6b28 100644
--- 
a/server/src/main/java/org/apache/rocketmq/studio/cluster/k8s/MybatisPlusK8sCertRepository.java
+++ 
b/server/src/main/java/org/apache/rocketmq/studio/cluster/k8s/MybatisPlusK8sCertRepository.java
@@ -25,6 +25,7 @@ import 
org.apache.rocketmq.studio.common.domain.enums.CertType;
 import org.apache.rocketmq.studio.persistence.entity.RmqK8sCertificate;
 import org.apache.rocketmq.studio.persistence.mapper.RmqK8sCertificateMapper;
 import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import lombok.RequiredArgsConstructor;
 
@@ -57,6 +58,7 @@ public class MybatisPlusK8sCertRepository implements 
K8sCertRepository {
     }
 
     @Override
+    @Transactional
     public K8sCertVO save(K8sCertVO cert) {
         RmqK8sCertificate entity = toEntity(cert);
         if (entity.getId() != null && certMapper.selectById(entity.getId()) != 
null) {
diff --git 
a/server/src/main/java/org/apache/rocketmq/studio/instance/MybatisPlusInstanceRepository.java
 
b/server/src/main/java/org/apache/rocketmq/studio/instance/MybatisPlusInstanceRepository.java
index 9d763926..704765eb 100644
--- 
a/server/src/main/java/org/apache/rocketmq/studio/instance/MybatisPlusInstanceRepository.java
+++ 
b/server/src/main/java/org/apache/rocketmq/studio/instance/MybatisPlusInstanceRepository.java
@@ -28,6 +28,7 @@ import 
org.apache.rocketmq.studio.persistence.mapper.RmqInstanceMapper;
 import org.apache.rocketmq.studio.persistence.mapper.RmqTopicMapper;
 import org.springframework.stereotype.Repository;
 import lombok.RequiredArgsConstructor;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Optional;
@@ -93,6 +94,7 @@ public class MybatisPlusInstanceRepository implements 
InstanceRepository {
     }
 
     @Override
+    @Transactional
     public InstanceVO save(InstanceVO instance) {
         RmqInstance entity = toEntity(instance);
         if (instanceMapper.selectById(entity.getId()) != null) {
diff --git 
a/server/src/main/java/org/apache/rocketmq/studio/ops/alert/MybatisPlusAlertRepository.java
 
b/server/src/main/java/org/apache/rocketmq/studio/ops/alert/MybatisPlusAlertRepository.java
index 27f31393..3571dd13 100644
--- 
a/server/src/main/java/org/apache/rocketmq/studio/ops/alert/MybatisPlusAlertRepository.java
+++ 
b/server/src/main/java/org/apache/rocketmq/studio/ops/alert/MybatisPlusAlertRepository.java
@@ -23,6 +23,7 @@ import 
org.apache.rocketmq.studio.persistence.entity.RmqSystemAlert;
 import org.apache.rocketmq.studio.persistence.mapper.RmqAlertRuleMapper;
 import org.apache.rocketmq.studio.persistence.mapper.RmqSystemAlertMapper;
 import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import lombok.RequiredArgsConstructor;
 
@@ -49,6 +50,7 @@ public class MybatisPlusAlertRepository implements 
AlertRepository {
     }
 
     @Override
+    @Transactional
     public AlertRuleVO saveRule(AlertRuleVO rule) {
         RmqAlertRule entity = toRuleEntity(rule);
         if (entity.getId() != null && ruleMapper.selectById(entity.getId()) != 
null) {
diff --git 
a/server/src/main/java/org/apache/rocketmq/studio/persistence/MybatisPlusSettingsRepository.java
 
b/server/src/main/java/org/apache/rocketmq/studio/persistence/MybatisPlusSettingsRepository.java
index 62c30896..ad887969 100644
--- 
a/server/src/main/java/org/apache/rocketmq/studio/persistence/MybatisPlusSettingsRepository.java
+++ 
b/server/src/main/java/org/apache/rocketmq/studio/persistence/MybatisPlusSettingsRepository.java
@@ -27,6 +27,7 @@ import org.apache.rocketmq.studio.settings.DataSourceVO;
 import org.apache.rocketmq.studio.settings.GeneralSettingsVO;
 import org.apache.rocketmq.studio.settings.SettingsRepository;
 import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.List;
@@ -88,6 +89,7 @@ public class MybatisPlusSettingsRepository implements 
SettingsRepository {
     }
 
     @Override
+    @Transactional
     public void saveGeneralSettings(GeneralSettingsVO settings) {
         try {
             String json = objectMapper.writeValueAsString(settings);

Reply via email to