diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-08-02 20:44:17 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2015-08-05 19:32:10 +0200 |
commit | d4df8897e4818bc61637f95acf36701409a25554 (patch) | |
tree | cd310ce69945c53afd4a1461fa56cbcf0db929eb /sonar-db/src | |
parent | b2d395ffce58f93027981beda99a150c99a4c31a (diff) | |
download | sonarqube-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.java | 16 |
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) { |