zoukankan      html  css  js  c++  java
  • Spring Boot 单库事务

    1:启动类配置

    @EnableAspectJAutoProxy(exposeProxy = true)
    @EnableTransactionManagement
    @SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
    public class ShoppingmallApplication {

    public static void main(String[] args) {
    SpringApplication.run(ShoppingmallApplication.class, args);
    }
    }

    2:调用业务方法

       @Override
        @Transactional
        public HttpResult simpleAdd(EquipmentSimpleDto es) {
            HttpResult r = new HttpResult();
            logger.info("==========简易添加==========开始...");
            try {
                String createUser = "shoppingmall";
                String remark = "简易添加";
                Date date = new Date();
    
                // 店铺
                Shops shops = new Shops(es.getShopName(), es.getOrgId());
                shops.setCreateUser(createUser);
                shops.setCreateTime(date);
                shops.setRemark(remark);
                ((ShopsService) AopContext.currentProxy()).save(shops); //本类方法调用
                logger.info("店铺已创建");
    
                // 模板
                ShoppingReceiptTemplate template = new ShoppingReceiptTemplate(es.getOrgId(), es.getShopName());
                template.setIsCommon(Boolean.FALSE);
                template.setCreateUser(createUser);
                template.setCreateTime(date);
                templateService.save(template);  //其他业务层调用
                logger.info("模板已创建");
    
                // 设备
                EquipmentInfo equipmentInfo = new EquipmentInfo(es.getEquipmentId(), es.getOrgId());
                // 设备-关联店铺
                equipmentInfo.setBindings(2);
                equipmentInfo.setShopsId(shops.getId());
                equipmentInfo.setShopsName(shops.getName());
                // 设备-关联模板
                equipmentInfo.setReceiptId(template.getId().toString());
                equipmentInfo.setReceiptName(template.getName());
    
                equipmentInfo.setCreateUser(createUser);
                equipmentInfo.setRemark(remark);
                equipmentInfo.setCreateTime(date);
                equipmentInfoService.save(equipmentInfo);
                logger.info("设备已创建");
    
                r.setCode(0);
                // 测试回滚
                /*
                int i = 0;
                int a =  123 / i;
               System.out.println(a);*/
            } catch (Exception e) {
                e.printStackTrace();
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();  //关键
                r.setCode(-1);
                r.setMsg("异常:" + e.getMessage());
            } finally {
                logger.info("==========简易添加==========结束...");
            }
            return r;
        }
  • 相关阅读:
    API Hook完全手册
    ASP.NET页面刷新的实现方法
    ASP.NET验证码
    ASP.NET优化性能的方法
    Asp.net中Server.Transfer,Server.Execute和Response.Redirect的区别
    FireFox新标签页打开搜索和书签
    win10里如何在中文输入法里添加美式键盘
    Sublime Text 3中文乱码问题解决
    Win2008 r2 IIS7.5出现“FastCGI进程最近常常失败。请过一会再尝试此请求”的解决方法
    Sublime Text 3中设置不记住上次打开的文件
  • 原文地址:https://www.cnblogs.com/eason-d/p/11834824.html
Copyright © 2011-2022 走看看