跳至主要內容
并发问题

1、背景

因没做过大项目,并发经验匮乏,所以很多时候考虑不到并发问题,今天做接口的压力测试,无意间发现一个并发的问题,就是判断数据库是否存在某个记录时,如果没做并发处理,就会出现并发的问题,比如以下代码,给某个医院添加科室,当医院已经有这个科室则不允许重复添加重名的科室

public void addHospitalDept(SysHospitalDept sysHospitalDept) {
        //根据医院id,科室名,校验科室唯一性
        SysHospitalDept hospitalDept = this.queryByHospitalIdAndDeptName(sysHospitalDept.getHospitalId(), sysHospitalDept.getDeptName());
        if (Objects.nonNull(hospitalDept)) {
            log.error("医院id:{},已经存在了科室[{}]", hospitalDept.getHospitalId(), hospitalDept.getDeptName());
            throw new RuntimeException("该医院下已经存在了科室——" + hospitalDept.getDeptName());
        }
		sysHospitalDept.setDelFlag(false);
		sysHospitalDept.setCreatorId(SecurityUtils.getUser().getId());
		sysHospitalDept.setCreateTime(LocalDateTime.now());
		this.save(sysHospitalDept);
	}

ChenSino原创大约 2 分钟-- 并发