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

Commit 1b6b9fb

Browse files
committed
[BI-2051] - batched inserts for efficiency
1 parent 57848e3 commit 1b6b9fb

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -272,16 +272,16 @@ public ObservationEntity getObservationEntity(String observationDbId, HttpStatus
272272
}
273273

274274
public List<Observation> saveObservations(@Valid List<ObservationNewRequest> requests) throws BrAPIServerException {
275-
List<Observation> savedObservations = new ArrayList<>();
276-
275+
List<ObservationEntity> toSave = new ArrayList<>();
277276
for (ObservationNewRequest request : requests) {
278277
ObservationEntity entity = new ObservationEntity();
279-
updateEntity(entity, request);
280-
ObservationEntity savedEntity = observationRepository.save(entity);
281-
savedObservations.add(convertFromEntity(savedEntity));
278+
updateEntity(entity, request); // TODO: does updateEntity need to hit the database?
279+
toSave.add(entity);
282280
}
283-
284-
return savedObservations;
281+
return observationRepository.saveAllAndFlush(toSave)
282+
.stream()
283+
.map(this::convertFromEntity)
284+
.collect(Collectors.toList());
285285
}
286286

287287
public List<Observation> updateObservations(@Valid Map<String, ObservationNewRequest> requests)
@@ -381,6 +381,7 @@ private void updateEntity(ObservationEntity entity, ObservationNewRequest observ
381381
entity.setValue(observation.getValue());
382382

383383
if (observation.getObservationUnitDbId() != null) {
384+
// TODO: is the DbId is all we need to insert?
384385
ObservationUnitEntity observationUnit = observationUnitService
385386
.getObservationUnitEntity(observation.getObservationUnitDbId());
386387
entity.setObservationUnit(observationUnit);

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

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,16 +332,17 @@ public ObservationUnitEntity getObservationUnitEntity(String observationUnitDbId
332332

333333
public List<ObservationUnit> saveObservationUnits(@Valid List<ObservationUnitNewRequest> requests)
334334
throws BrAPIServerException {
335-
List<ObservationUnit> savedObservationUnits = new ArrayList<>();
336-
335+
List<ObservationUnitEntity> toSave = new ArrayList<>();
337336
for (ObservationUnitNewRequest request : requests) {
338337
ObservationUnitEntity entity = new ObservationUnitEntity();
339-
updateEntity(entity, request);
340-
ObservationUnitEntity savedEntity = observationUnitRepository.save(entity);
341-
savedObservationUnits.add(convertFromEntity(savedEntity));
338+
updateEntity(entity, request); // TODO: does updateEntity need to hit the database?
339+
toSave.add(entity);
342340
}
343341

344-
return savedObservationUnits;
342+
return observationUnitRepository.saveAllAndFlush(toSave)
343+
.stream()
344+
.map(this::convertFromEntity)
345+
.collect(Collectors.toList());
345346
}
346347

347348
public List<ObservationUnit> updateObservationUnits(@Valid Map<String, ObservationUnitNewRequest> requests)

0 commit comments

Comments
 (0)