今天爱分享给大家带来查询判重在并发下存在的问题 交易判重 数据库底层判重【附代码】,希望能够帮助到大家。
首先,用查询判重在并发高的情况下是有可能防不了重复的。
建议在数据库的orderNo字段加唯一索引。
try{ return insert(order); }catch(DuplicateKeyException e){ logger.error(e.getMessage(), e); return -1; }
错误的做法
Order exsitOrder = excute("select order_no from fund_order where order_no = #{orderNo}"); if(exsitOrder = null){ return insert(order); }else{ return -1; }