diff --git a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/DocLogDao.java b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/DocLogDao.java index cd5695cf..6f57cc58 100644 --- a/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/DocLogDao.java +++ b/doc/doc-server/src/main/java/cn/axzo/nanopart/doc/dao/DocLogDao.java @@ -2,12 +2,15 @@ package cn.axzo.nanopart.doc.dao; import org.springframework.stereotype.Repository; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.support.TransactionTemplate; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.axzo.nanopart.doc.api.util.BizAssertions; import cn.axzo.nanopart.doc.entity.DocLog; import cn.axzo.nanopart.doc.mapper.DocLogMapper; -import cn.axzo.nanopart.doc.api.util.BizAssertions; /** * @author yanglin @@ -15,6 +18,13 @@ import cn.axzo.nanopart.doc.api.util.BizAssertions; @Repository public class DocLogDao extends ServiceImpl { + private final TransactionTemplate newTransaction; + + public DocLogDao(PlatformTransactionManager transactionManager) { + newTransaction = new TransactionTemplate(transactionManager); + newTransaction.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); + } + public void logRequest(String context, Object subject, Object request) { log(context, subject, "request", request); } @@ -35,7 +45,7 @@ public class DocLogDao extends ServiceImpl { log.addLogContent((String) logContents[i], logContents[i + 1]); } } - save(log); + newTransaction.executeWithoutResult(unused -> save(log)); } }