zoukankan      html  css  js  c++  java
  • 加 synchronized 关键字进行同步

           在工作中遇到的一个问题,由于订单编号根据系统数据库中已有的最大编号递增加1的,这样就可能会出现多个人同时操作时,每个人操作时都是取的系统数据库中之前最大的一个编号(假设是006),然后提交时可能就会生成多个007的编号,违反了业务要求的编号唯一的要求。考虑到系统访问量不大,不用考虑高并发的问题,这样问题就很好解决,只需要对这个方法加 关键字 syncharonized 进行同步即可解决。

    /**
    
     * 保存订单基本信息
     *
     * @param orderBaseInfo 订单基本信息对象
     */
    @Transactional(rollbackFor = Exception.class)
    // synchronized 加关键字进行同步
    public synchronized void save(LoginUserDto loginUserDto, OrderBaseInfo orderBaseInfo) {
        orderBaseInfo.setFinishedNumber(BigDecimal.valueOf(0).setScale(2, ROUND_HALF_EVEN));
        orderBaseInfo.setCreateTime(new Date());
        orderBaseInfo.setCreateBy(loginUserDto.getUsername());
        String newOrderNo = findNewOrderNo();//保存订单时再生成订单号,插入数据库
        orderBaseInfo.setOrderNo(newOrderNo);
        orderBaseInfoDao.insert(orderBaseInfo);
    }
  • 相关阅读:
    Git

    学而不记则徒劳无功
    Redis基础
    哈希表
    第一个Python程序
    Python 环境搭建 基于 Windows
    执行数据库的插入操作 insert
    Eclipse连接到My sql数据库的操作总结/配置数据库驱动
    数据库 (一)
  • 原文地址:https://www.cnblogs.com/zhuchaoyang123/p/12923798.html
Copyright © 2011-2022 走看看