From 9afb8201765053c63d88b635816134884f2d8e8c Mon Sep 17 00:00:00 2001 From: life <13122192336@163.com> Date: Tue, 8 Aug 2023 13:57:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84seata-boot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/TestService.java | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-seata/src/main/java/com/mybatisfle/test/mybatisflexspringbootseata/service/TestService.java b/mybatis-flex-test/mybatis-flex-spring-boot-seata/src/main/java/com/mybatisfle/test/mybatisflexspringbootseata/service/TestService.java index b99f4029..77a811e5 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-seata/src/main/java/com/mybatisfle/test/mybatisflexspringbootseata/service/TestService.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-seata/src/main/java/com/mybatisfle/test/mybatisflexspringbootseata/service/TestService.java @@ -10,6 +10,11 @@ import com.mybatisfle.test.mybatisflexspringbootseata.mapper.OrderTblMapper; import com.mybatisfle.test.mybatisflexspringbootseata.mapper.StockTblMapper; import com.mybatisflex.core.datasource.DataSourceKey; import com.mybatisflex.core.query.QueryWrapper; +import io.seata.core.context.RootContext; +import io.seata.spring.annotation.GlobalTransactional; +import org.mybatis.logging.Logger; +import org.mybatis.logging.LoggerFactory; +import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -17,6 +22,8 @@ import org.springframework.transaction.annotation.Transactional; @Service public class TestService { + private static final Logger LOGGER = LoggerFactory.getLogger(TestService.class); + @Autowired AccountTblMapper accountTblMapper; @@ -27,27 +34,29 @@ public class TestService { StockTblMapper stockTblMapper; // @Transactional + @GlobalTransactional public boolean buy() { // DataSourceKey.use("accountdb"); + LOGGER.warn(() -> "xid:"+RootContext.getXID()); QueryWrapper account =new QueryWrapper(); account.where(AccountTblTableDef.ACCOUNT_TBL.USER_ID.eq("1001")); AccountTbl accountTbl = accountTblMapper.selectOneByQuery(account); accountTbl.setMoney(accountTbl.getMoney() - 5); accountTblMapper.update(accountTbl); -// DataSourceKey.use("stockdb"); -// QueryWrapper stock = new QueryWrapper(); -// stock.where("id=1"); -// StockTbl stockTbl = stockTblMapper.selectOneByQuery(stock); -// stockTbl.setCount(stockTbl.getCount() - 1); -// stockTblMapper.update(stockTbl); -// DataSourceKey.use("orderdb"); -// OrderTbl orderTbl = new OrderTbl(); -// orderTbl.setCount(5); -// orderTbl.setMoney(5); -// orderTbl.setUserId(accountTbl.getUserId()); -// orderTbl.setCount(1); -// orderTbl.setCommodityCode(stockTbl.getCommodityCode()); -// orderTblMapper.insert(orderTbl); + DataSourceKey.use("stockdb"); + QueryWrapper stock = new QueryWrapper(); + stock.where("id=1"); + StockTbl stockTbl = stockTblMapper.selectOneByQuery(stock); + stockTbl.setCount(stockTbl.getCount() - 1); + stockTblMapper.update(stockTbl); + DataSourceKey.use("orderdb"); + OrderTbl orderTbl = new OrderTbl(); + orderTbl.setCount(5); + orderTbl.setMoney(5); + orderTbl.setUserId(accountTbl.getUserId()); + orderTbl.setCount(1); + orderTbl.setCommodityCode(stockTbl.getCommodityCode()); + orderTblMapper.insert(orderTbl); return true; } }