Skip to content
This repository was archived by the owner on Aug 1, 2025. It is now read-only.

Commit ab35a5d

Browse files
committed
Merge branch 'germ-search-opts' into germ-importer-opts
2 parents b0a5d4b + 38cf473 commit ab35a5d

File tree

12 files changed

+47
-45
lines changed

12 files changed

+47
-45
lines changed

src/main/java/org/brapi/test/BrAPITestServer/controller/germ/CrossesApiController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ public ResponseEntity<CrossesListResponse> crossesGet(
5959
validateSecurityContext(request, "ROLE_ANONYMOUS", "ROLE_USER");
6060
validateAcceptHeader(request);
6161
Metadata metadata = generateMetaDataTemplate(page, pageSize);
62-
List<Cross> data = crossService.findCrosses(crossingProjectDbId, crossDbId,
63-
externalReferenceID, externalReferenceSource,
62+
List<Cross> data = crossService.findCrosses(crossingProjectDbId, crossingProjectName, crossDbId, crossName,
63+
commonCropName, programDbId, externalReferenceId, externalReferenceID, externalReferenceSource,
6464
metadata);
6565
return responseOK(new CrossesListResponse(), new CrossesListResponseResult(), data, metadata);
6666
}

src/main/java/org/brapi/test/BrAPITestServer/controller/germ/CrossingProjectsApiController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ public ResponseEntity<CrossingProjectsListResponse> crossingProjectsGet(
6060
validateAcceptHeader(request);
6161
Metadata metadata = generateMetaDataTemplate(page, pageSize);
6262
List<CrossingProject> data = crossingProjectService.findCrossingProjects(crossingProjectDbId,
63-
crossingProjectName, includePotentialParents, commonCropName, programDbId,
64-
externalReferenceID, externalReferenceSource, metadata);
63+
crossingProjectName, includePotentialParents, commonCropName, programDbId, externalReferenceId,
64+
externalReferenceID, externalReferenceSource, metadata);
6565
return responseOK(new CrossingProjectsListResponse(), new CrossingProjectsListResponseResult(), data, metadata);
6666
}
6767

src/main/java/org/brapi/test/BrAPITestServer/controller/germ/PlannedCrossesApiController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ public ResponseEntity<PlannedCrossesListResponse> plannedCrossesGet(
6060
validateSecurityContext(request, "ROLE_ANONYMOUS", "ROLE_USER");
6161
validateAcceptHeader(request);
6262
Metadata metadata = generateMetaDataTemplate(page, pageSize);
63-
List<PlannedCross> data = crossService.findPlannedCrosses(crossingProjectDbId,
64-
plannedCrossDbId,
63+
List<PlannedCross> data = crossService.findPlannedCrosses(crossingProjectDbId, crossingProjectName,
64+
plannedCrossDbId, plannedCrossName, status, commonCropName, programDbId, externalReferenceId,
6565
externalReferenceID, externalReferenceSource, metadata);
6666
return responseOK(new PlannedCrossesListResponse(), new PlannedCrossesListResponseResult(), data, metadata);
6767
}

src/main/java/org/brapi/test/BrAPITestServer/controller/germ/SeedLotsApiController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public ResponseEntity<SeedLotListResponse> seedlotsGet(
6666
validateAcceptHeader(request);
6767
Metadata metadata = generateMetaDataTemplate(page, pageSize);
6868
List<SeedLot> data = seedLotService.findSeedLots(seedLotDbId, germplasmDbId, germplasmName, crossDbId,
69-
crossName, commonCropName, programDbId, externalReferenceID,
69+
crossName, commonCropName, programDbId, externalReferenceId, externalReferenceID,
7070
externalReferenceSource, metadata);
7171
return responseOK(new SeedLotListResponse(), new SeedLotListResponseResult(), data, metadata);
7272
}
@@ -156,7 +156,7 @@ public ResponseEntity<SeedLotTransactionListResponse> seedlotsTransactionsGet(
156156
validateAcceptHeader(request);
157157
Metadata metadata = generateMetaDataTemplate(page, pageSize);
158158
List<SeedLotTransaction> data = seedLotService.findSeedLotTransactions(transactionDbId, seedLotDbId,
159-
germplasmDbId, germplasmName, crossDbId, crossName, commonCropName, programDbId,
159+
germplasmDbId, germplasmName, crossDbId, crossName, commonCropName, programDbId, externalReferenceId,
160160
externalReferenceID, externalReferenceSource, metadata);
161161
return responseOK(new SeedLotTransactionListResponse(), new SeedLotTransactionListResponseResult(), data,
162162
metadata);

src/main/java/org/brapi/test/BrAPITestServer/service/SearchQueryBuilder.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class SearchQueryBuilder<T> {
1414
private String selectClause;
1515
private String selectOnlyIds;
1616
private String whereClause;
17+
private String defaultSort;
1718
private String sortClause;
1819
private Map<String, Object> params;
1920
private Class<T> clazz;
@@ -22,6 +23,7 @@ public SearchQueryBuilder(Class<T> clazz) {
2223
this.selectClause = "SELECT distinct entity FROM " + clazz.getSimpleName() + " entity ";
2324
this.selectOnlyIds = "SELECT entity.id FROM " + clazz.getSimpleName() + " entity ";
2425
this.whereClause = "WHERE 1=1 ";
26+
this.defaultSort = " ORDER BY entity.id ASC ";
2527
this.sortClause = "";
2628
this.params = new HashMap<>();
2729
this.clazz = clazz;
@@ -30,7 +32,7 @@ public SearchQueryBuilder(Class<T> clazz) {
3032
public String getQuery() {
3133
if (sortClause.isEmpty()) {
3234
// By default, sort on entity id to have query result remain idempotent
33-
sortClause = " ORDER BY entity.id ASC ";
35+
sortClause = defaultSort;
3436
}
3537

3638
return selectClause + whereClause + sortClause;
@@ -39,7 +41,7 @@ public String getQuery() {
3941
public String getIdQuery() {
4042
if (sortClause.isEmpty()) {
4143
// By default, sort on entity id to have query result remain idempotent
42-
sortClause = " ORDER BY entity.id ASC ";
44+
sortClause = defaultSort;
4345
}
4446

4547
return selectOnlyIds + whereClause + sortClause;

src/main/java/org/brapi/test/BrAPITestServer/service/germ/CrossService.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,29 +47,29 @@ public CrossService(CrossRepository crossRepository, CrossingProjectService cros
4747
this.crossParentService = crossParentService;
4848
}
4949

50-
public List<Cross> findCrosses(String crossingProjectDbId, String crossDbId,
51-
String externalReferenceID, String externalReferenceSource, Metadata metadata)
50+
public List<Cross> findCrosses(String crossingProjectDbId, String crossingProjectName, String crossDbId,
51+
String crossName, String commonCropName, String programDbId, String externalReferenceId,
52+
String externalReferenceID, String externalReferenceSource, Metadata metadata)
5253
throws BrAPIServerException {
53-
List<Cross> crosses = findCrossEntities(crossingProjectDbId, crossDbId,
54-
externalReferenceID, externalReferenceSource, false,
54+
List<Cross> crosses = findCrossEntities(crossingProjectDbId, crossingProjectName, crossDbId, crossName, null,
55+
commonCropName, programDbId, externalReferenceId, externalReferenceID, externalReferenceSource, false,
5556
metadata).map(this::convertToCross).getContent();
5657
return crosses;
5758
}
5859

59-
public List<PlannedCross> findPlannedCrosses(String crossingProjectDbId,
60-
String crossDbId,
61-
String externalReferenceID, String externalReferenceSource,
62-
Metadata metadata)
60+
public List<PlannedCross> findPlannedCrosses(String crossingProjectDbId, String crossingProjectName,
61+
String crossDbId, String crossName, String status, String commonCropName, String programDbId,
62+
String externalReferenceId, String externalReferenceID, String externalReferenceSource, Metadata metadata)
6363
throws BrAPIServerException {
64-
List<PlannedCross> crosses = findCrossEntities(crossingProjectDbId, crossDbId,
65-
externalReferenceID, externalReferenceSource, true,
64+
List<PlannedCross> crosses = findCrossEntities(crossingProjectDbId, crossingProjectName, crossDbId, crossName, status,
65+
commonCropName, programDbId, externalReferenceId, externalReferenceID, externalReferenceSource, true,
6666
metadata).map(this::convertToPlanned).getContent();
6767
return crosses;
6868
}
6969

70-
public Page<CrossEntity> findCrossEntities(String crossingProjectDbId, String crossDbId,
71-
String externalReferenceID, String externalReferenceSource,
72-
Boolean plannedCross, Metadata metadata)
70+
public Page<CrossEntity> findCrossEntities(String crossingProjectDbId, String crossingProjectName, String crossDbId,
71+
String crossName, String status, String commonCropName, String programDbId, String externalReferenceId,
72+
String externalReferenceID, String externalReferenceSource, Boolean plannedCross, Metadata metadata)
7373
throws BrAPIServerException {
7474

7575
Pageable pageReq = PagingUtility.getPageRequest(metadata);
@@ -227,7 +227,7 @@ private void updateEntity(CrossEntity entity, CrossNewRequest cross) throws BrAP
227227
if (cross.getCrossName() != null)
228228
entity.setName(cross.getCrossName());
229229
if (cross.getPlannedCrossDbId() != null) {
230-
List<CrossEntity> plannedEntity = findCrossEntities(null, cross.getPlannedCrossDbId(), null, null, true, null).getContent();
230+
List<CrossEntity> plannedEntity = findCrossEntities(null, null, cross.getPlannedCrossDbId(), null, null, null, null, null, null, null, true, null).getContent();
231231
entity.setPlannedCross(plannedEntity.get(0));
232232
}
233233
if (cross.getPollinationEvents() != null) {

src/main/java/org/brapi/test/BrAPITestServer/service/germ/CrossingProjectService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ public CrossingProjectService(CrossingProjectRepository crossingProjectRepositor
4141
}
4242

4343
public List<CrossingProject> findCrossingProjects(String crossingProjectDbId, String crossingProjectName,
44-
Boolean includePotentialParents, String commonCropName, String programDbId,
45-
String externalReferenceID, String externalReferenceSource, Metadata metadata)
44+
Boolean includePotentialParents, String commonCropName, String programDbId, String externalReferenceId,
45+
String externalReferenceID, String externalReferenceSource, Metadata metadata)
4646
throws BrAPIServerException {
4747
Pageable pageReq = PagingUtility.getPageRequest(metadata);
4848

src/main/java/org/brapi/test/BrAPITestServer/service/germ/GermplasmService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ public Page<GermplasmEntity> findGermplasmEntities(@Valid GermplasmSearchRequest
120120

121121
SearchQueryBuilder<GermplasmEntity> searchQuery = buildGermplasmSearchQuery(request);
122122

123-
// First run the query without the fetching all the entities, grabbing the IDs only and paginating and sorting them.
123+
// Since the built searchQuery contains a lazily loaded collection retrieved with a LEFT JOIN FETCH,
124+
// use findAllBySearchPaginatingWithFetches()
124125
Page<GermplasmEntity> germs = germplasmRepository.findAllBySearchPaginatingWithFetches(searchQuery, pageReq);
125126

126127
// Hopefully this retains insertion order in the page?
@@ -336,7 +337,6 @@ private void fetchRemainingGermCollectionsUsingQuery(SearchQueryBuilder<Germplas
336337
searchQuery.leftJoinFetch("externalReferences",
337338
"externalReferences");
338339

339-
// TODO: This method doesn't need to utilize a method that returns a page.
340340
List<GermplasmEntity> xrefs = germplasmRepository.findAllBySearch(searchQuery);
341341

342342
Map<String, List<ExternalReferenceEntity>> xrefByEntity = new HashMap<>();

src/main/java/org/brapi/test/BrAPITestServer/service/germ/SeedLotService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ public SeedLotService(SeedLotRepository seedLotRepository,
5959
}
6060

6161
public List<SeedLot> findSeedLots(String seedLotDbId, String germplasmDbId, String germplasmName, String crossDbId,
62-
String crossName, String commonCropName, String programDbId,
63-
String externalReferenceID, String externalReferenceSource, Metadata metadata)
62+
String crossName, String commonCropName, String programDbId, String externalReferenceId,
63+
String externalReferenceID, String externalReferenceSource, Metadata metadata)
6464
throws BrAPIServerException {
6565
Pageable pageReq = PagingUtility.getPageRequest(metadata);
6666
SearchQueryBuilder<SeedLotEntity> searchQuery = new SearchQueryBuilder<SeedLotEntity>(SeedLotEntity.class);
@@ -132,16 +132,16 @@ public List<SeedLotTransaction> findSeedLotTransactions(String seedLotDbId, Stri
132132
String transactionDirection, Metadata metadata) throws BrAPIServerException {
133133
SeedLot seedLot = getSeedLot(seedLotDbId);
134134
if (seedLot != null) {
135-
return findSeedLotTransactions(transactionDbId, seedLotDbId, null, null, null, null, null, null, null,
135+
return findSeedLotTransactions(transactionDbId, seedLotDbId, null, null, null, null, null, null, null, null,
136136
null, metadata);
137137
}
138138
return null;
139139
}
140140

141141
public List<SeedLotTransaction> findSeedLotTransactions(String transactionDbId, String seedLotDbId,
142-
String germplasmDbId, String germplasmName, String crossDbId, String crossName, String commonCropName,
143-
String programDbId, String externalReferenceID, String externalReferenceSource,
144-
Metadata metadata)
142+
String germplasmDbId, String germplasmName, String crossDbId, String crossName, String commonCropName,
143+
String programDbId, String externalReferenceId, String externalReferenceID, String externalReferenceSource,
144+
Metadata metadata)
145145
throws BrAPIServerException {
146146
Pageable pageReq = PagingUtility.getPageRequest(metadata);
147147
SearchQueryBuilder<SeedLotTransactionEntity> searchQuery = new SearchQueryBuilder<SeedLotTransactionEntity>(

src/main/java/org/brapi/test/BrAPITestServer/service/pheno/ScaleService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public List<Scale> findScales(String scaleDbId, String observationVariableDbId,
4444
Pageable pageReq = PagingUtility.getPageRequest(metadata);
4545
SearchQueryBuilder<ScaleEntity> searchQuery = new SearchQueryBuilder<ScaleEntity>(ScaleEntity.class);
4646
if (observationVariableDbId != null) {
47-
searchQuery = searchQuery.join("variables", "variabTle").appendSingle(observationVariableDbId,
47+
searchQuery = searchQuery.join("variables", "variable").appendSingle(observationVariableDbId,
4848
"*variable.id");
4949
}
5050
searchQuery = searchQuery.appendSingle(scaleDbId, "id").withExRefs(externalReferenceID,

0 commit comments

Comments
 (0)