From d3caa3da8418ae061edc78b69b8f1a18e24f1620 Mon Sep 17 00:00:00 2001 From: tekay <tom.kaesler@mni.thm.de> Date: Sun, 14 Feb 2016 18:30:32 +0100 Subject: [PATCH] split up bulk save in a total of 4. --- src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 8 ++++---- .../arsnova/entities/transport/ImportExportSession.java | 8 ++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 5b505a65f..ef13a43d5 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -2117,7 +2117,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware List<Document> answers = new ArrayList<Document>(); // We can then push answers together with interposed questions in one large bulk request List<Document> interposedQuestions = new ArrayList<Document>(); - // Motds shouldn't be forgotten + // Motds shouldn't be forgotten, too List<Document> motds = new ArrayList<Document>(); try { // add session id to all questions and generate documents @@ -2177,8 +2177,8 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware motds.add(d); } List<Document> documents = new ArrayList<Document>(answers); - documents.addAll(interposedQuestions); - documents.addAll(motds); + database.bulkSaveDocuments(interposedQuestions.toArray(new Document[interposedQuestions.size()])); + database.bulkSaveDocuments(motds.toArray(new Document[motds.size()])); database.bulkSaveDocuments(documents.toArray(new Document[documents.size()])); } catch (IOException e) { LOGGER.error("Could not import this session: {}", e.getMessage()); @@ -2186,7 +2186,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware this.deleteSession(session); return null; } - return calculateSessionInfo(importSession, session); + return this.calculateSessionInfo(importSession, session); } @Override diff --git a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java index 305ac0cf9..8a5bc310e 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java +++ b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java @@ -25,6 +25,7 @@ import de.thm.arsnova.entities.Motd; import de.thm.arsnova.entities.SessionInfo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import org.springframework.context.annotation.Import; import java.util.Date; import java.util.List; @@ -48,6 +49,8 @@ public class ImportExportSession { public ImportExportSession() { questions = new ArrayList<ImportExportQuestion>(); feedbackQuestions = new ArrayList<InterposedQuestion>(); + motds = new ArrayList<Motd>(); + sessionInfo = null; } @ApiModelProperty(required = true, value = "used to display session") @@ -107,6 +110,7 @@ public class ImportExportSession { public void addQuestionWithAnswers(Question q, List<Answer> aL) { ImportExportQuestion ieq = new ImportExportQuestion(q); ieq.setAnswers(aL); + questions.add(ieq); } public Session generateSessionEntity(User user) { @@ -144,6 +148,10 @@ public class ImportExportSession { private List<Answer> answers; + public ImportExportQuestion() { + + } + public ImportExportQuestion(Question q) { setType(q.getType()); setQuestionType(q.getQuestionType()); -- GitLab