@RequestMapping(value="/addCommand", method = RequestMethod.POST, consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
@ResponseBody
public ResponseMessage<?> addCommand(
@ApiParam(name="batchNo", value="用于多文件上传")@RequestParam(value="batchNo", required=true)String batchNo){
String userId = request.getAttribute(JwtConstants.CURRENT_USER_NAME).toString();
CommandInfoEntity commandinfo = commandservice.findUniqueByProperty(CommandInfoEntity.class, "batchNo", batchNo);
if(commandinfo==null){
/**需求是每次传图片都会传一个batchNo,用来区分是不是同一组图片
*但是ajax传过来的时侯,多个请求会一起挤到findUniqueByProperty 这个方法里去查
*而这时batchNo对应的数据还没有生成,所以每一个访问都会访问到null,就会每次都新生成一条记录
/
}else{
}
}
我的解决办法是:在方法上加锁synchronized (这应该是一个暂时性的方法,百度的时候说应该加在service里,因为controller简洁一些好,只做一些必要的删改操作)