From 8f2a1a722f91d4fadc74e7ebacd6a22b830a97f9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Wed, 6 Jul 2016 15:58:13 +0200 Subject: [PATCH] SONAR-7683 add SnapshotDao#selectByUuids --- .../org/sonar/db/component/SnapshotDao.java | 17 ++++++++--- .../sonar/db/component/SnapshotMapper.java | 5 ++-- .../org/sonar/db/component/SnapshotMapper.xml | 28 +++++++++++-------- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/sonar-db/src/main/java/org/sonar/db/component/SnapshotDao.java b/sonar-db/src/main/java/org/sonar/db/component/SnapshotDao.java index f9240f3a0a1..ae5f5a881c7 100644 --- a/sonar-db/src/main/java/org/sonar/db/component/SnapshotDao.java +++ b/sonar-db/src/main/java/org/sonar/db/component/SnapshotDao.java @@ -21,6 +21,7 @@ package org.sonar.db.component; import com.google.common.collect.Lists; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Optional; import javax.annotation.CheckForNull; @@ -66,6 +67,18 @@ public class SnapshotDao implements Dao { return executeLargeInputs(snapshotIds, mapper(dbSession)::selectByIds); } + public Optional selectByUuid(DbSession dbSession, String analysisUuid) { + List dtos = mapper(dbSession).selectByUuids(Collections.singletonList(analysisUuid)); + if (dtos.isEmpty()) { + return Optional.empty(); + } + return Optional.of(dtos.iterator().next()); + } + + public List selectByUuids(DbSession dbSession, Collection analysisUuids) { + return executeLargeInputs(analysisUuids, mapper(dbSession)::selectByUuids); + } + public Optional selectLastAnalysisByComponentUuid(DbSession session, String componentUuid) { return Optional.ofNullable(mapper(session).selectLastSnapshotByComponentUuid(componentUuid)); } @@ -108,10 +121,6 @@ public class SnapshotDao implements Dao { return snapshotDtos.isEmpty() ? null : snapshotDtos.get(0); } - public Optional selectByUuid(DbSession dbSession, String analysisUuid) { - return Optional.ofNullable(mapper(dbSession).selectByUuid(analysisUuid)); - } - public void switchIsLastFlagAndSetProcessedStatus(DbSession dbSession, String componentUuid, String analysisUuid) { SnapshotMapper mapper = mapper(dbSession); mapper.unsetIsLastFlagForComponentUuid(componentUuid); diff --git a/sonar-db/src/main/java/org/sonar/db/component/SnapshotMapper.java b/sonar-db/src/main/java/org/sonar/db/component/SnapshotMapper.java index b235f4f8dc0..c5c7aef8f5c 100644 --- a/sonar-db/src/main/java/org/sonar/db/component/SnapshotMapper.java +++ b/sonar-db/src/main/java/org/sonar/db/component/SnapshotMapper.java @@ -32,6 +32,8 @@ public interface SnapshotMapper { List selectByIds(@Param("ids") List ids); + List selectByUuids(@Param("uuids") List uuids); + void insert(SnapshotDto snapshot); @CheckForNull @@ -50,9 +52,6 @@ public interface SnapshotMapper { List selectSnapshotBefore(@Param("componentUuid") String componentUuid, @Param("date") long date); - @CheckForNull - SnapshotDto selectByUuid(String analysisUuid); - void unsetIsLastFlagForComponentUuid(@Param("componentUuid") String componentUuid); void setIsLastFlagForAnalysisUuid(@Param("analysisUuid") String analysisUuid); diff --git a/sonar-db/src/main/resources/org/sonar/db/component/SnapshotMapper.xml b/sonar-db/src/main/resources/org/sonar/db/component/SnapshotMapper.xml index c5e7f2e283c..98166bd23c1 100644 --- a/sonar-db/src/main/resources/org/sonar/db/component/SnapshotMapper.xml +++ b/sonar-db/src/main/resources/org/sonar/db/component/SnapshotMapper.xml @@ -43,22 +43,28 @@ - SELECT - - FROM snapshots s - WHERE s.uuid=#{uuid} + + FROM + snapshots s + WHERE + s.id in + + #{id} + - SELECT - - FROM snapshots s + + FROM + snapshots s WHERE - s.id in - - #{id} - + s.uuid in + + #{uuid} +