@@ -137,7 +137,7 @@ public Page<GermplasmEntity> findGermplasmEntities(@Valid GermplasmSearchRequest
137137 "*institute.instituteCode" );
138138 }
139139
140- searchQuery .withExRefs (request .getExternalReferenceIDs (), request .getExternalReferenceSources ())
140+ searchQuery .withExRefs (request .getExternalReferenceIDs (), request .getExternalReferenceSources ())
141141 .appendList (request .getAccessionNumbers (), "accessionNumber" )
142142 .appendList (request .getCollections (), "collection" )
143143 .appendList (request .getCommonCropNames (), "crop.cropName" ).appendList (request .getGermplasmDbIds (), "id" )
@@ -149,146 +149,150 @@ public Page<GermplasmEntity> findGermplasmEntities(@Valid GermplasmSearchRequest
149149 .appendNamesList (request .getBinomialNames (), "genus" , "genus" , "species" )
150150 .appendList (request .getFamilyCodes (), "familyCode" );
151151
152- Page <GermplasmEntity > page = germplasmRepository .findAllBySearch (searchQuery , pageReq );
152+ Page <UUID > page = germplasmRepository .findAllBySearchIdsOnly (searchQuery , pageReq );
153153
154- if (!page .isEmpty ()) {
155- log .debug ("fetching xrefs" );
156- fetchXrefs (page );
154+ Page <GermplasmEntity > germs = germplasmRepository .findAllBySearchNoPage (searchQuery , page , pageReq );
155+
156+ if (!page .isEmpty ()) {
157+ log .debug ("Fetching xrefs" );
158+ fetchXrefs (page , germs );
157159 log .debug ("fetching attributes" );
158- fetchAttributes (page );
160+ fetchAttributes (page , germs );
159161 log .debug ("fetching donors" );
160- fetchDonors (page );
162+ fetchDonors (page , germs );
161163 log .debug ("fetching origins" );
162- fetchOrigin (page );
164+ fetchOrigin (page , germs );
163165 log .debug ("fetching institutes" );
164- fetchInstitutes (page );
166+ fetchInstitutes (page , germs );
165167 log .debug ("fetching taxons" );
166- fetchTaxons (page );
168+ fetchTaxons (page , germs );
167169 log .debug ("fetching storage codes" );
168- fetchStorageCodes (page );
170+ fetchStorageCodes (page , germs );
169171 log .debug ("fetching pedigree edges" );
170- fetchPedigreeEdges (page );
172+ fetchPedigreeEdges (page , germs );
171173 }
172-
173- return page ;
174+ return germs ;
174175 }
175176
176- private void fetchXrefs (Page <GermplasmEntity > page ) {
177+ private void fetchXrefs (Page <UUID > page , Page < GermplasmEntity > germEntities ) {
177178 SearchQueryBuilder <GermplasmEntity > searchQuery = new SearchQueryBuilder <GermplasmEntity >(GermplasmEntity .class );
178- searchQuery .leftJoinFetch ("externalReferences" , "externalReferences" )
179- .leftJoinFetch ("pedigree" , "pedigree" )
180- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "id" );
179+ searchQuery .leftJoinFetch ("externalReferences" , "externalReferences" );
181180
182- Page <GermplasmEntity > xrefs = germplasmRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
181+ Page <GermplasmEntity > xrefs = germplasmRepository .findAllBySearchNoPage (searchQuery , page , PageRequest .of (0 , page .getSize ()));
183182
184183 Map <String , List <ExternalReferenceEntity >> xrefByEntity = new HashMap <>();
185184 xrefs .forEach (entity -> xrefByEntity .put (entity .getId (), entity .getExternalReferences ()));
186185
187- page .forEach (entity -> entity .setExternalReferences (xrefByEntity .get (entity .getId ())));
186+ germEntities .forEach (entity -> entity .setExternalReferences (xrefByEntity .get (entity .getId (). toString ())));
188187 }
189188
190- private void fetchAttributes (Page <GermplasmEntity > page ) {
189+ private void fetchAttributes (Page <UUID > page , Page < GermplasmEntity > germEntities ) {
191190 SearchQueryBuilder <GermplasmEntity > searchQuery = new SearchQueryBuilder <GermplasmEntity >(
192191 GermplasmEntity .class );
193- searchQuery .leftJoinFetch ("attributes" , "attributes" )
194- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "id" );
192+ searchQuery .leftJoinFetch ("attributes" , "attributes" );
195193
196- Page <GermplasmEntity > attributes = germplasmRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
194+ Page <GermplasmEntity > attributes = germplasmRepository .findAllBySearchNoPage (searchQuery ,
195+ page ,
196+ PageRequest .of (0 , page .getSize ()));
197197
198198 Map <String , List <GermplasmAttributeValueEntity >> attributesByGerm = new HashMap <>();
199199 attributes .forEach (germ -> attributesByGerm .put (germ .getId (), germ .getAttributes ()));
200200
201- page .forEach (germ -> germ .setAttributes (attributesByGerm .get (germ .getId ())));
201+ germEntities .forEach (germ -> germ .setAttributes (attributesByGerm .get (germ .getId (). toString ())));
202202 }
203203
204- private void fetchDonors (Page <GermplasmEntity > page ) {
204+ private void fetchDonors (Page <UUID > page , Page < GermplasmEntity > germEntities ) {
205205 SearchQueryBuilder <GermplasmEntity > searchQuery = new SearchQueryBuilder <GermplasmEntity >(
206206 GermplasmEntity .class );
207- searchQuery .leftJoinFetch ("donors" , "donors" )
208- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "id" );
207+ searchQuery .leftJoinFetch ("donors" , "donors" );
209208
210- Page <GermplasmEntity > donors = germplasmRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
209+ Page <GermplasmEntity > donors = germplasmRepository .findAllBySearchNoPage (searchQuery ,
210+ page ,
211+ PageRequest .of (0 , page .getSize ()));
211212
212213 Map <String , List <DonorEntity >> donorsByGerm = new HashMap <>();
213214 donors .forEach (germ -> donorsByGerm .put (germ .getId (), germ .getDonors ()));
214215
215- page .forEach (germ -> germ .setDonors (donorsByGerm .get (germ .getId ())));
216+ germEntities .forEach (germ -> germ .setDonors (donorsByGerm .get (germ .getId (). toString ())));
216217 }
217218
218- private void fetchOrigin (Page <GermplasmEntity > page ) {
219+ private void fetchOrigin (Page <UUID > page , Page < GermplasmEntity > germEntities ) {
219220 SearchQueryBuilder <GermplasmEntity > searchQuery = new SearchQueryBuilder <GermplasmEntity >(
220221 GermplasmEntity .class );
221- searchQuery .leftJoinFetch ("germplasmOrigin" , "germplasmOrigin" )
222- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "id" );
222+ searchQuery .leftJoinFetch ("germplasmOrigin" , "germplasmOrigin" );
223223
224- Page <GermplasmEntity > origins = germplasmRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
224+ Page <GermplasmEntity > origins = germplasmRepository .findAllBySearchNoPage (searchQuery ,
225+ page ,
226+ PageRequest .of (0 , page .getSize ()));
225227
226228 Map <String , List <GermplasmOriginEntity >> originsByGerm = new HashMap <>();
227229 origins .forEach (germ -> originsByGerm .put (germ .getId (), germ .getGermplasmOrigin ()));
228230
229- page .forEach (germ -> germ .setGermplasmOrigin (originsByGerm .get (germ .getId ())));
231+ germEntities .forEach (germ -> germ .setGermplasmOrigin (originsByGerm .get (germ .getId (). toString ())));
230232 }
231233
232- private void fetchInstitutes (Page <GermplasmEntity > page ) {
234+ private void fetchInstitutes (Page <UUID > page , Page < GermplasmEntity > germEntities ) {
233235 SearchQueryBuilder <GermplasmEntity > searchQuery = new SearchQueryBuilder <GermplasmEntity >(
234236 GermplasmEntity .class );
235- searchQuery .leftJoinFetch ("institutes" , "institutes" )
236- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "id" );
237+ searchQuery .leftJoinFetch ("institutes" , "institutes" );
237238
238- Page <GermplasmEntity > institutes = germplasmRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
239+ Page <GermplasmEntity > institutes = germplasmRepository .findAllBySearchNoPage (searchQuery ,
240+ page ,
241+ PageRequest .of (0 , page .getSize ()));
239242
240243 Map <String , List <GermplasmInstituteEntity >> institutesByGerm = new HashMap <>();
241244 institutes .forEach (germ -> institutesByGerm .put (germ .getId (), germ .getInstitutes ()));
242245
243- page .forEach (germ -> germ .setInstitutes (institutesByGerm .get (germ .getId ())));
246+ germEntities .forEach (germ -> germ .setInstitutes (institutesByGerm .get (germ .getId (). toString ())));
244247 }
245248
246- private void fetchTaxons (Page <GermplasmEntity > page ) {
249+ private void fetchTaxons (Page <UUID > page , Page < GermplasmEntity > germEntities ) {
247250 SearchQueryBuilder <GermplasmEntity > searchQuery = new SearchQueryBuilder <GermplasmEntity >(
248251 GermplasmEntity .class );
249- searchQuery .leftJoinFetch ("taxonIds" , "taxonIds" )
250- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "id" );
252+ searchQuery .leftJoinFetch ("taxonIds" , "taxonIds" );
251253
252- Page <GermplasmEntity > taxonIds = germplasmRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
254+ Page <GermplasmEntity > taxonIds = germplasmRepository .findAllBySearchNoPage (searchQuery ,
255+ page ,
256+ PageRequest .of (0 , page .getSize ()));
253257
254258 Map <String , List <TaxonEntity >> taxonIdsByGerm = new HashMap <>();
255259 taxonIds .forEach (germ -> taxonIdsByGerm .put (germ .getId (), germ .getTaxonIds ()));
256260
257- page .forEach (germ -> germ .setTaxonIds (taxonIdsByGerm .get (germ .getId ())));
261+ germEntities .forEach (germ -> germ .setTaxonIds (taxonIdsByGerm .get (germ .getId (). toString ())));
258262 }
259263
260- private void fetchStorageCodes (Page <GermplasmEntity > page ) {
264+ private void fetchStorageCodes (Page <UUID > page , Page < GermplasmEntity > germEntities ) {
261265 SearchQueryBuilder <GermplasmEntity > searchQuery = new SearchQueryBuilder <GermplasmEntity >(
262266 GermplasmEntity .class );
263- searchQuery .leftJoinFetch ("typeOfGermplasmStorageCode" , "typeOfGermplasmStorageCode" )
264- .appendList (page .stream ().map (BrAPIBaseEntity ::getId ).collect (Collectors .toList ()), "id" );
267+ searchQuery .leftJoinFetch ("typeOfGermplasmStorageCode" , "typeOfGermplasmStorageCode" );
265268
266- Page <GermplasmEntity > storageCodes = germplasmRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
269+ Page <GermplasmEntity > storageCodes = germplasmRepository .findAllBySearchNoPage (searchQuery ,
270+ page ,
271+ PageRequest .of (0 , page .getSize ()));
267272
268273 Map <String , List <GermplasmStorageTypesEnum >> storageCodesByGerm = new HashMap <>();
269274 storageCodes .forEach (germ -> storageCodesByGerm .put (germ .getId (), germ .getTypeOfGermplasmStorageCode ()));
270275
271- page .forEach (germ -> germ .setTypeOfGermplasmStorageCode (storageCodesByGerm .get (germ .getId ())));
276+ germEntities .forEach (germ -> germ .setTypeOfGermplasmStorageCode (storageCodesByGerm .get (germ .getId (). toString ())));
272277 }
273278
274- private void fetchPedigreeEdges (Page <GermplasmEntity > page ) {
279+ private void fetchPedigreeEdges (Page <UUID > page , Page < GermplasmEntity > germEntities ) {
275280 SearchQueryBuilder <GermplasmEntity > searchQuery = new SearchQueryBuilder <GermplasmEntity >(
276281 GermplasmEntity .class );
277282 searchQuery .leftJoinFetch ("pedigree" , "pedigree" )
278283 .leftJoinFetch ("*pedigree.crossingProject" , "crossingProject" )
279284 .leftJoinFetch ("*pedigree.edges" , "pedigreeEdges" )
280- .leftJoinFetch ("*pedigreeEdges.connectedNode" , "connectedNode" )
281- .appendList (page .stream ()
282- .map (BrAPIBaseEntity ::getId )
283- .collect (Collectors .toList ()), "id" );
285+ .leftJoinFetch ("*pedigreeEdges.conncetedNode" , "connectedNode" );
284286
285- Page <GermplasmEntity > pedigree = germplasmRepository .findAllBySearch (searchQuery , PageRequest .of (0 , page .getSize ()));
287+ Page <GermplasmEntity > pedigree = germplasmRepository .findAllBySearchNoPage (searchQuery ,
288+ page ,
289+ PageRequest .of (0 , page .getSize ()));
286290
287291 Map <String , PedigreeNodeEntity > pedigreeByGerm = new HashMap <>();
288292 pedigree .forEach (germ -> pedigreeByGerm .put (germ .getId (), germ .getPedigree ()));
289293
290- page .forEach (germ -> {
291- germ .setPedigree (pedigreeByGerm .get (germ .getId ()));
294+ germEntities .forEach (germ -> {
295+ germ .setPedigree (pedigreeByGerm .get (germ .getId (). toString () ));
292296 });
293297 }
294298
0 commit comments