场景:注册企业信息的时候根据企业的统一社会信用代码去查询数据库是否存在该企业,如果存在则更新,如果不存在则新增
问题:如果多线程同时调用接口,会导致新增多条相同数据
CompanyInfoTemp companyInfoTemp1 = getListBuUniscId(uniscId);
if(companyInfoTemp1==null){
baseMapper.insert(companyInfoTemp);
}else{
companyInfoTemp.setCompanyId(companyInfoTemp1.getCompanyId());
baseMapper.updateById(companyInfoTemp);
}
期望结果:多线程调用时也只新增一条数据,其他为更新
已尝试过为该方法添加synchronized锁,可以实现,但效率会降低,期望得到一个其他方法