目前在做一个app的java后端开发,有这样一个需求,某一个用户的某一种数据只能够在数据库表中出现唯一一条
有这个需求的话,很简单的实现就是不用考虑太多东西,直接写好逻辑:
如果数据库中已经存在那条数据了就把它删掉...大概的意思就是数据出现了3条,可是在dao层中仅获取一条,问题来了,这多出来的数据是怎么回事?...冷静下来想一想,应该是多条请求在同一时刻内发过来的,它们同时判断出数据库当中没有数据,然后同时插入了进去,噢,原来是这个样子,那么这个问题该如何解决呢?...相信这种问题在后台端开发是非常常见的,例如在web端,要提交一个表单数据,由于服务器处理延迟,用户看不到反馈,就心急地狂按鼠标发送数据;又或者是在下单的时候不小心多按了几下鼠标,导致订单下多了几个,等等...,具体是哪个线程在处理呢,所以就要以runningToken为key,runningTokenValue(runningToken与线程id拼接成的字符串)为值存进缓存当中,在aop的@After方法中