一次耗时2天的低级bug

28
五月
2021

错误示例:

//转换node信息

List<HerePhaZlevels> herePhaZlevelsList = herePhaZlevelsService.lambdaQuery()

.eq(HerePhaZlevels::getNodeId,Integer.parseInt(herePhaStreet.getRefInId())).list();

//判断nodeid是否已经存在

if(herePhaZlevelsList.size()>0 && !nodeIdSet.contains(herePhaStreet.getRefInId())){

nodeSw2021q133.setHllNodeid(UUID.randomUUID().toString());

nodeSw2021q133.setNodeId(herePhaStreet.getRefInId());

nodeSw2021q133.setGeom(herePhaZlevelsList.get(0).getGeom());

nodeSw2021q133.setUpDate(LocalDateTime.now());

nodeSw2021q133List.add(nodeSw2021q133);

nodeIdSet.add(herePhaStreet.getRefInId());

}

linkSw2021q133.setHllENid(herePhaStreet.getNrefInId());

NodeSw2021q133 nodeSw2021q133N = new NodeSw2021q133();

herePhaZlevelsList = herePhaZlevelsService.lambdaQuery()

.eq(HerePhaZlevels::getNodeId,Integer.parseInt(herePhaStreet.getNrefInId())).list();

if(herePhaZlevelsList.size()>0 && !nodeIdSet.contains(herePhaStreet.getNrefInId())){

nodeSw2021q133.setHllNodeid(UUID.randomUUID().toString());

nodeSw2021q133.setNodeId(herePhaStreet.getNrefInId());

nodeSw2021q133.setGeom(herePhaZlevelsList.get(0).getGeom());

nodeSw2021q133.setUpDate(LocalDateTime.now());

nodeSw2021q133List.add(nodeSw2021q133);

nodeIdSet.add(herePhaStreet.getNrefInId());

}

导致问题:nodeSw2021q133List中的重复的,导致入库时出错(违反唯一id)

原因:

在处理nodeSw2021q133时,不同的node,使用了同一个对象;需要使用不同的对象

正确:

//转换node信息

List<HerePhaZlevels> herePhaZlevelsList = herePhaZlevelsService.lambdaQuery()

.eq(HerePhaZlevels::getNodeId,Integer.parseInt(herePhaStreet.getRefInId())).list();

//判断nodeid是否已经存在

if(herePhaZlevelsList.size()>0 && !nodeIdSet.contains(herePhaStreet.getRefInId())){

nodeSw2021q133.setHllNodeid(UUID.randomUUID().toString());

nodeSw2021q133.setNodeId(herePhaStreet.getRefInId());

nodeSw2021q133.setGeom(herePhaZlevelsList.get(0).getGeom());

nodeSw2021q133.setUpDate(LocalDateTime.now());

nodeSw2021q133List.add(nodeSw2021q133);

nodeIdSet.add(herePhaStreet.getRefInId());

}

linkSw2021q133.setHllENid(herePhaStreet.getNrefInId());

NodeSw2021q133 nodeSw2021q133N = new NodeSw2021q133();

herePhaZlevelsList = herePhaZlevelsService.lambdaQuery()

.eq(HerePhaZlevels::getNodeId,Integer.parseInt(herePhaStreet.getNrefInId())).list();

if(herePhaZlevelsList.size()>0 && !nodeIdSet.contains(herePhaStreet.getNrefInId())){

nodeSw2021q133N.setHllNodeid(UUID.randomUUID().toString());

nodeSw2021q133N.setNodeId(herePhaStreet.getNrefInId());

nodeSw2021q133N.setGeom(herePhaZlevelsList.get(0).getGeom());

nodeSw2021q133N.setUpDate(LocalDateTime.now());

nodeSw2021q133List.add(nodeSw2021q133N);

nodeIdSet.add(herePhaStreet.getNrefInId());

}

TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员