aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db/src
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2015-08-02 20:44:17 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2015-08-05 19:32:10 +0200
commitd4df8897e4818bc61637f95acf36701409a25554 (patch)
treecd310ce69945c53afd4a1461fa56cbcf0db929eb /sonar-db/src
parentb2d395ffce58f93027981beda99a150c99a4c31a (diff)
downloadsonarqube-d4df8897e4818bc61637f95acf36701409a25554.tar.gz
sonarqube-d4df8897e4818bc61637f95acf36701409a25554.zip
ComponentDao#selectByKeys() supports more than 1'000 inputs
Diffstat (limited to 'sonar-db/src')
-rw-r--r--sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java b/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java
index 0d9e254ecb8..794546ae1ca 100644
--- a/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java
+++ b/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java
@@ -38,6 +38,7 @@ import org.sonar.db.DbSession;
import org.sonar.db.RowNotFoundException;
import static com.google.common.collect.Maps.newHashMapWithExpectedSize;
+import static org.sonar.db.DatabaseUtils.executeLargeInputs;
public class ComponentDao implements Dao {
@@ -131,7 +132,20 @@ public class ComponentDao implements Dao {
}
public List<ComponentDto> selectByKeys(DbSession session, Collection<String> keys) {
- return mapper(session).selectByKeys(keys);
+ return executeLargeInputs(keys, new KeyToDto(mapper(session)));
+ }
+
+ private static class KeyToDto implements Function<List<String>, List<ComponentDto>> {
+ private final ComponentMapper mapper;
+
+ private KeyToDto(ComponentMapper mapper) {
+ this.mapper = mapper;
+ }
+
+ @Override
+ public List<ComponentDto> apply(@Nonnull List<String> partitionOfKeys) {
+ return mapper.selectByKeys(partitionOfKeys);
+ }
}
public ComponentDto selectOrFailByKey(DbSession session, String key) {