GitHub user jinnan22 created a discussion: 一个方法内,只执行一个更新的操作,会出现两次提交

**代码:**
@GlobalTransactional(name = "gtx_updateOilAnalysis", rollbackFor = 
Exception.class)
    @Transactional(rollbackFor = Exception.class)
    public void updateOilAnalysis(OilAnalysisAddQuery  oilAnalysisAddQuery){
        oilAnalysisAddQuery.setDeptId(oilAnalysisAddQuery.getDeptIdStr());
        if 
(!MosConstants.MAINTENANCE_STATUS_UNSUBMITTED.equals(oilAnalysisAddQuery.getStatus()))
 {
            throw new CustomException("错误,周期工作标准数据已提交,不允许修改!");
        }
        if(ValidatorUtil.isEmpty(oilAnalysisAddQuery.getAnalysisId())){
            throw new CustomException("参数错误!");
        }
        if (oilAnalysisAddQuery.isSubmit()) {
            isSubmit(oilAnalysisAddQuery);
        }
        CmVessel vessel = new CmVessel();
        if (ObjectUtil.isNotEmpty(oilAnalysisAddQuery.getVesselCode())){
             vessel = vesselService.getOne(new LambdaQueryWrapper<CmVessel>()
                    .eq(CmVessel::getVesselCode, 
oilAnalysisAddQuery.getVesselCode())
                    .eq(CmVessel::getDelFlag, MosConstants.NOT_DELETE_FLAG));
        }
        MmOilAnalysis mmOilAnalysis = 
mmOilAnalysisService.addOrUpdateMmOilAnalysis(oilAnalysisAddQuery, 
vessel.getBusinessUnits());
        mmOilAnalysis.setStatus(oilAnalysisAddQuery.isSubmit() ? 
MosConstants.MAINTENANCE_STATUS_UNREVIEWED : 
MosConstants.MAINTENANCE_STATUS_UNSUBMITTED);
        boolean update = mmOilAnalysisService.updateById(mmOilAnalysis);
        if (!update) {
            throw new CustomException("保存失败,请刷新后重试或联系管理员!");
        }
        if (oilAnalysisAddQuery.isSubmit()) {
            
mmOilAnalysisService.submitForActiviti(mmOilAnalysis.getAnalysisId(), 
oilAnalysisAddQuery.getFlowBizInfoUrl(), 
oilAnalysisAddQuery.getBizTypeCode(),mmOilAnalysis);
        }
    }
    
   **日志:**
   2026-09-07 15:55:49.212 chain-vessel 
[traceId:0987a91f6bf44b428a5d740fa2faff53] INFO  
io.seata.tm.TransactionManagerHolder - TransactionManager Singleton 
io.seata.tm.DefaultTransactionManager@53f096f2
2026-09-07 15:55:51.287 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
INFO  io.seata.tm.api.DefaultGlobalTransaction - Begin new global transaction 
[192.168.59.101:8091:27842136592814315]
2026-09-07 15:55:51.352 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.vessel.mapper.CmVesselMapper.selectList - ==> 
2026-09-07 15:55:51.399 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.vessel.mapper.CmVesselMapper.selectList - ==> Parameters: 
GD7(String), 1(String)
2026-09-07 15:55:51.444 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.vessel.mapper.CmVesselMapper.selectList - <==      Total: 1
2026-09-07 15:55:51.446 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.work.mapper.MmOilAnalysisMapper.selectList - ==>  
2026-09-07 15:55:51.447 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.work.mapper.MmOilAnalysisMapper.selectList - ==> Parameters: 
b2d2d766edb043b1814a540a64541067(String), 1(String)
2026-09-07 15:55:51.486 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.work.mapper.MmOilAnalysisMapper.selectList - <==      Total: 1
2026-09-07 15:55:51.528 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.work.mapper.MmOilAnalysisMapper.updateById - ==>  Preparing: 
UPDATE mm_oil_analysis SET SAMPLE_TYPE=?, SAMPLE_NO=?, REPORT_NO=?, 
REPORT_DATE=?, SAMPLE_DATE=?, ANALYSIS_RESULT=?, STATUS=?, CURRENCY_CODE=?, 
ANALYSIS_AMOUNT=?, REMARK=?, CREATE_USER=?, create_time=?, MODIFY_USER=?, 
modify_time=?, del_flag=?, vessel_code=?, version_num=? WHERE ANALYSIS_ID=?
2026-09-07 15:55:51.544 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.work.mapper.MmOilAnalysisMapper.updateById - ==> Parameters: 
0(String), 111(String), d1111(String), 2026-09-07T00:00(LocalDateTime), 
2026-09-08T00:00(LocalDateTime), 0(String), 0(String), OMR(String), 
111(BigDecimal), 111(String), 0(String), 2026-09-07T15:05:19(LocalDateTime), 
0(String), 2026-09-07T15:55:51.487(LocalDateTime), 1(String), GD7(String), 
1(Integer), b2d2d766edb043b1814a540a64541067(String)
2026-09-07 15:55:52.152 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG c.c.bus.work.mapper.MmOilAnalysisMapper.updateById - <==    Updates: 1
2026-09-07 15:55:53.430 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
INFO  io.seata.tm.api.DefaultGlobalTransaction - Suspending current 
transaction, xid = 192.168.59.101:8091:27842136592814315
2026-09-07 15:55:53.431 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
INFO  io.seata.tm.api.DefaultGlobalTransaction - 
[192.168.59.101:8091:27842136592814315] commit status: Committed
2026-09-07 15:55:53.433 chain-vessel [traceId:0987a91f6bf44b428a5d740fa2faff53] 
DEBUG com.chain.common.core.filter.TraceIdFilter - 
TraceIdFilter#doFilterInternal#MDC removed
2026-09-07 15:55:53.818 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG com.chain.common.core.filter.TraceIdFilter - 
TraceIdFilter#doFilterInternal#traceId from header: 
582b1f52c0374a33bb55f6777a1089eb
2026-09-07 15:55:53.818 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG com.chain.common.core.filter.TraceIdFilter - 
TraceIdFilter#doFilterInternal#traceId set to response header: 
582b1f52c0374a33bb55f6777a1089eb
2026-09-07 15:55:53.840 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
INFO  com.chain.bus.base.common.aspect.DataScopeAspect - 数据过滤处理
2026-09-07 15:55:53.847 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
WARN  com.chain.common.core.utils.ServletUtils - Request is not wrapped by 
CachedBodyHttpServletRequest, cannot read body.
2026-09-07 15:55:53.873 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG c.c.b.w.m.MmOilAnalysisMapper.selectParam_COUNT - ==>  Preparing: SELECT 
count(0) FROM `mm_oil_analysis` s LEFT JOIN cm_vessel v ON s.vessel_code = 
v.vessel_code WHERE s.`del_flag` = '1'
2026-09-07 15:55:53.874 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG c.c.b.w.m.MmOilAnalysisMapper.selectParam_COUNT - ==> Parameters: 
2026-09-07 15:55:53.907 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG c.c.b.w.m.MmOilAnalysisMapper.selectParam_COUNT - <==      Total: 1
2026-09-07 15:55:53.918 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG c.c.b.work.mapper.MmOilAnalysisMapper.selectParam - ==>  Preparing: 
SELECT s.`work_id`, s.`ANALYSIS_ID`, s.`business_units`, s.`dept_id`, 
s.`SAMPLE_TYPE`, s.`SAMPLE_NO`, s.`REPORT_NO`, s.`SAMPLE_DATE`, 
s.`ANALYSIS_RESULT`, s.`STATUS`, s.`REMARK`, s.`CHECK_USER`, s.`CHECK_DATE`, 
s.`CREATE_USER`, s.`create_time`, s.`MODIFY_USER`, s.`MODIFY_Time`, 
s.`VESSEL_CODE`, s.`del_flag`, s.`REPORT_DATE`, s.`CURRENCY_CODE`, 
s.`ANALYSIS_AMOUNT` FROM `mm_oil_analysis` s LEFT JOIN cm_vessel v ON 
s.vessel_code = v.vessel_code WHERE s.`del_flag` = '1' order by create_time 
desc LIMIT ?
2026-09-07 15:55:53.919 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG c.c.b.work.mapper.MmOilAnalysisMapper.selectParam - ==> Parameters: 
10(Integer)
2026-09-07 15:55:53.960 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG c.c.b.work.mapper.MmOilAnalysisMapper.selectParam - <==      Total: 10
2026-09-07 15:55:53.968 chain-vessel [traceId:582b1f52c0374a33bb55f6777a1089eb] 
DEBUG com.chain.common.core.filter.TraceIdFilter - 
TraceIdFilter#doFilterInternal#MDC removed
2026-09-07 15:55:54.462 chain-vessel [traceId:] INFO  
i.s.c.rpc.processor.client.RmBranchCommitProcessor - rm client handle branch 
commit 
process:xid=192.168.59.101:8091:27842136592814315,branchId=27842136592814318,branchType=AT,resourceId=jdbc:mysql://180.168.38.38:8307/chain-mos-test,applicationData={"autoCommit":false}
2026-09-07 15:55:54.466 chain-vessel [traceId:] INFO  
io.seata.rm.AbstractRMHandler - Branch committing: 
192.168.59.101:8091:27842136592814315 27842136592814318 
jdbc:mysql://180.168.38.38:8307/chain-mos-test {"autoCommit":false}
2026-09-07 15:55:54.467 chain-vessel [traceId:] INFO  
io.seata.rm.AbstractRMHandler - Branch commit result: PhaseTwo_Committed
2026-09-07 15:55:54.521 chain-vessel [traceId:] INFO  
i.s.c.rpc.processor.client.RmBranchCommitProcessor - rm client handle branch 
commit 
process:xid=192.168.59.101:8091:27842136592814315,branchId=27842136592814321,branchType=AT,resourceId=jdbc:mysql://180.168.38.38:8307/chain-mos-test,applicationData={"autoCommit":false}
2026-09-07 15:55:54.521 chain-vessel [traceId:] INFO  
io.seata.rm.AbstractRMHandler - Branch committing: 
192.168.59.101:8091:27842136592814315 27842136592814321 
jdbc:mysql://180.168.38.38:8307/chain-mos-test {"autoCommit":false}
2026-09-07 15:55:54.521 chain-vessel [traceId:] INFO  
io.seata.rm.AbstractRMHandler - Branch commit result: PhaseTwo_Committed

JDK:1.8
seata版本:1.6.1


GitHub link: https://github.com/apache/incubator-seata/discussions/8222

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to