r142 - in trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services: . impl
Author: echatellier Date: 2013-02-21 10:37:08 +0100 (Thu, 21 Feb 2013) New Revision: 142 Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/142 Log: Manage null or empty query to return empty lists Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/SearchService.java trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/SearchServiceImpl.java Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/SearchService.java =================================================================== --- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/SearchService.java 2013-02-21 09:34:24 UTC (rev 141) +++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/SearchService.java 2013-02-21 09:37:08 UTC (rev 142) @@ -42,7 +42,7 @@ /** * Search for query result into data model. * - * @param query query + * @param query query (null value handled : return empty lists) * @param utilisateur utilisateur to filter results * @return search result */ Modified: trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/SearchServiceImpl.java =================================================================== --- trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/SearchServiceImpl.java 2013-02-21 09:34:24 UTC (rev 141) +++ trunk/cantharella.service/src/main/java/nc/ird/cantharella/service/services/impl/SearchServiceImpl.java 2013-02-21 09:37:08 UTC (rev 142) @@ -22,6 +22,7 @@ */ package nc.ird.cantharella.service.services.impl; +import java.util.Collections; import java.util.List; import javax.annotation.Resource; @@ -38,6 +39,7 @@ import nc.ird.cantharella.service.model.SearchResult; import nc.ird.cantharella.service.services.SearchService; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.index.FieldInfos; import org.apache.lucene.index.IndexReader; import org.apache.lucene.queryParser.MultiFieldQueryParser; @@ -117,25 +119,37 @@ //fullTextSession.setCacheMode(CacheMode.IGNORE); try { - // wrap Lucene query in a org.hibernate.Query - org.hibernate.Query hibSpecimen = getQuery(fullTextSession, Specimen.class, strQuery, utilisateur); - org.hibernate.Query hibLot = getQuery(fullTextSession, Lot.class, strQuery, utilisateur); - org.hibernate.Query hibExtraction = getQuery(fullTextSession, Extraction.class, strQuery, utilisateur); - org.hibernate.Query hibPurification = getQuery(fullTextSession, Purification.class, strQuery, utilisateur); - org.hibernate.Query hibResultatTestBio = getQuery(fullTextSession, ResultatTestBio.class, strQuery, - utilisateur); - org.hibernate.Query hibStation = getQuery(fullTextSession, Station.class, strQuery, utilisateur); - org.hibernate.Query hibMolecule = getQuery(fullTextSession, Molecule.class, strQuery, utilisateur); - // execute search - List<Specimen> specimens = hibSpecimen.list(); - List<Lot> lots = hibLot.list(); - List<Extraction> extractions = hibExtraction.list(); - List<Purification> purifications = hibPurification.list(); - List<ResultatTestBio> resultatTestBios = hibResultatTestBio.list(); - List<Station> resultatStations = hibStation.list(); - List<Molecule> resultatMolecules = hibMolecule.list(); + // default init to empty list if query is null or empty + List<Specimen> specimens = Collections.EMPTY_LIST; + List<Lot> lots = Collections.EMPTY_LIST; + List<Extraction> extractions = Collections.EMPTY_LIST; + List<Purification> purifications = Collections.EMPTY_LIST; + List<ResultatTestBio> resultatTestBios = Collections.EMPTY_LIST; + List<Station> resultatStations = Collections.EMPTY_LIST; + List<Molecule> resultatMolecules = Collections.EMPTY_LIST; + if (StringUtils.isNotEmpty(strQuery)) { + // wrap Lucene query in a org.hibernate.Query + org.hibernate.Query hibSpecimen = getQuery(fullTextSession, Specimen.class, strQuery, utilisateur); + org.hibernate.Query hibLot = getQuery(fullTextSession, Lot.class, strQuery, utilisateur); + org.hibernate.Query hibExtraction = getQuery(fullTextSession, Extraction.class, strQuery, utilisateur); + org.hibernate.Query hibPurification = getQuery(fullTextSession, Purification.class, strQuery, utilisateur); + org.hibernate.Query hibResultatTestBio = getQuery(fullTextSession, ResultatTestBio.class, strQuery, + utilisateur); + org.hibernate.Query hibStation = getQuery(fullTextSession, Station.class, strQuery, utilisateur); + org.hibernate.Query hibMolecule = getQuery(fullTextSession, Molecule.class, strQuery, utilisateur); + + // perform search + specimens = hibSpecimen.list(); + lots = hibLot.list(); + extractions = hibExtraction.list(); + purifications = hibPurification.list(); + resultatTestBios = hibResultatTestBio.list(); + resultatStations = hibStation.list(); + resultatMolecules = hibMolecule.list(); + } + result.setSpecimens(specimens); result.setLots(lots); result.setExtractions(extractions);
participants (1)
-
echatellier@users.forge.codelutin.com