java 线程安全问题

  String hql = "from ReviewStepInfo where pjtfsn=? and code=?";

        ReviewStepInfo saveObject = (ReviewStepInfo) reviewStepInfoDAO

                .findUnique(hql, pjtfsn, "XXPS");

        if (saveObject == null) {

            saveObject = new ReviewStepInfo();

            saveObject.setId(StringUtils.uuid());

            saveObject.setPjtfsn(pjtfsn);

            saveObject.setStatus(0);

            saveObject.setCode("XXPS");

            saveObject.setCreateTime(new Date());

            saveObject.setNotConsistentCount(list.size());

            saveObject.setReivewCount(0);

            reviewStepInfoDAO.saveOrUpdate(saveObject);

        }    

根据表的两个字段 判断数据库是否有这条数据,如果没有就创建,但是,不知道什么原因 在数据库出现三条一致的数据。 每隔三秒由ajax发出请求执行这个方法。
我猜想的原因是由于浏览器的原因 ajax阻塞了?同时发出三条请求让后台处理才导致的?遇到这种情况只能加锁吗?

忽然笑
浏览 917回答 2
2回答

翻阅古今

加锁比较简单,但是性能不高。建议使用数据库的事务,隔离读操作。
打开App,查看更多内容
随时随地看视频慕课网APP