From 2f65154a573853cd62582eddd415e3280a6f573c Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 13 Oct 2009 18:36:58 +0000 Subject: [PATCH] [LMS-1229] fixed sample search with multiple db instances SVN: 12943 --- .../business/bo/samplelister/ISampleListingQuery.java | 7 ++++--- .../business/bo/samplelister/SampleListingWorker.java | 5 +++-- .../bo/samplelister/SampleSetListingQueryTest.java | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/ISampleListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/ISampleListingQuery.java index 76aa3c01b90..026e926d78a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/ISampleListingQuery.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/ISampleListingQuery.java @@ -25,6 +25,7 @@ import net.lemnik.eodsql.DataIterator; import net.lemnik.eodsql.EoDException; import net.lemnik.eodsql.Select; import net.lemnik.eodsql.TransactionQuery; +import net.lemnik.eodsql.TypeMapper; import net.lemnik.eodsql.spi.util.NonUpdateCapableDataObjectBinding; import org.apache.commons.lang.StringEscapeUtils; @@ -225,9 +226,9 @@ public interface ISampleListingQuery extends TransactionQuery, IPropertyListingQ @Select(sql = "select s.id, s.perm_id, s.code, s.expe_id, s.grou_id, " + " s.registration_timestamp, s.pers_id_registerer, " + " s.samp_id_generated_from, s.samp_id_part_of, s.saty_id, s.inva_id " - + " from samples s where s.id = any(?{1})", parameterBindings = - { LongSetMapper.class }, fetchSize = FETCH_SIZE) - public DataIterator<SampleRecord> getSamples(LongSet sampleIds); + + " from samples s where dbin_id=?{1} and s.id = any(?{2})", parameterBindings = + { TypeMapper.class, LongSetMapper.class }, fetchSize = FETCH_SIZE) + public DataIterator<SampleRecord> getSamples(long dbInstanceId, LongSet sampleIds); // // Sample Properties diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java index df836798727..da4fb61621a 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingWorker.java @@ -315,7 +315,7 @@ final class SampleListingWorker { return null; } - return query.getSamples(new LongOpenHashSet(ids)); + return query.getSamples(databaseInstanceId, new LongOpenHashSet(ids)); } private Iterable<SampleRecord> tryGetIteratorForGroupSamples() @@ -542,7 +542,8 @@ final class SampleListingWorker return; } requestedSamples.keySet().removeAll(sampleMap.keySet()); - retrieveDependentBasicSamples(query.getSamples(requestedSamples.keySet())); + retrieveDependentBasicSamples(query.getSamples(databaseInstanceId, requestedSamples + .keySet())); retrieveDependentSamplesRecursively(); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleSetListingQueryTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleSetListingQueryTest.java index 23e1358f83c..8f72b9df4af 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleSetListingQueryTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleSetListingQueryTest.java @@ -113,7 +113,7 @@ public class SampleSetListingQueryTest extends AbstractDAOTest public void testQuerySamples() { LongSet ids = createSet(CELL_PLATE_ID_CP_TEST_1, CELL_PLATE_ID_CP_TEST_2); - List<SampleRecord> samples = asList(query.getSamples(ids)); + List<SampleRecord> samples = asList(query.getSamples(dbInstanceId, ids)); assertEquals(ids.size(), samples.size()); for (SampleRecord sampleRowVO : samples) { -- GitLab