欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

加 synchronized 关键字进行同步,

来源: javaer 分享于  点击 6652 次 点评:144

加 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);
}

相关文章

    暂无相关文章
相关栏目:

用户点评