From baf56de63e8743a613186a6cc427077418db70e3 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Mon, 2 Aug 2021 12:26:16 +0200 Subject: [PATCH] WIP: multi-retrieve --- pom.xml | 2 +- .../grpc/EntityTransactionServiceImpl.java | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index f3ab3fc5..95345d95 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.caosdb</groupId> <artifactId>caosdb-server</artifactId> - <version>0.5.0-GRPC0.0.7</version> + <version>0.5.0-GRPC0.0.8</version> <packaging>jar</packaging> <name>CaosDB Server</name> <scm> diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java index 43d52ba5..cfec8646 100644 --- a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java +++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java @@ -218,6 +218,19 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa final RetrieveEntity entity = new RetrieveEntity(getId(id)); container.add(entity); + } catch (final NumberFormatException e) { + // We handle this after the retrieval + } + } + + final Retrieve transaction = new Retrieve(container); + transaction.execute(); + + for (final TransactionRequest sub_request : request.getRequestsList()) { + final String id = sub_request.getRetrieveRequest().getId(); + try { + final EntityInterface entity = container.getEntityById(getId(id)); + builder.addResponses( TransactionResponse.newBuilder() .setRetrieveResponse(RetrieveResponse.newBuilder().setEntity(convert(entity)))); @@ -230,10 +243,6 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa RetrieveResponse.newBuilder().setEntity(entityDoesNotExist(id)))); } } - - final Retrieve transaction = new Retrieve(container); - transaction.execute(); - return builder.build(); } -- GitLab