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);