From 717e8d4e459664c902e975f7b13713ea2d9f5212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Fri, 15 Mar 2024 15:32:31 +0100 Subject: [PATCH] Fix storing multiple TaskSerieItems for RootTask --- .../java/core/entities/timemanager/TaskSerieItem.java | 2 +- .../main/java/core/services/TaskSeriesService.java | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/backend/src/main/java/core/entities/timemanager/TaskSerieItem.java b/backend/src/main/java/core/entities/timemanager/TaskSerieItem.java index 46728fa..3160a78 100644 --- a/backend/src/main/java/core/entities/timemanager/TaskSerieItem.java +++ b/backend/src/main/java/core/entities/timemanager/TaskSerieItem.java @@ -14,7 +14,7 @@ public class TaskSerieItem { @JoinColumn(referencedColumnName = "taskSerieID") private TaskSerie taskSerie; - @OneToOne(cascade = CascadeType.ALL) + @OneToOne @JoinColumn(name = "task_id") private Task task; diff --git a/backend/src/main/java/core/services/TaskSeriesService.java b/backend/src/main/java/core/services/TaskSeriesService.java index efac5cb..65fa3b1 100644 --- a/backend/src/main/java/core/services/TaskSeriesService.java +++ b/backend/src/main/java/core/services/TaskSeriesService.java @@ -35,12 +35,11 @@ public class TaskSeriesService { } List taskList = new ArrayList<>(); - taskList.add(rootTask); - LocalDate currentTaskDate = rootTask.getStartDate().plusDays(taskRepeatInfo.getOffset()); TaskSerie taskSerie = new TaskSerie(); - TaskSerieItem rootItem = taskSerie.addTask(rootTask); rootTask.setTaskSerieItem(rootItem); + + LocalDate currentTaskDate = rootTask.getStartDate().plusDays(taskRepeatInfo.getOffset()); int index = 2; while(currentTaskDate.isBefore(taskRepeatInfo.getEndingDate())) { Task task = Task.cloneTask(rootTask); @@ -69,7 +68,11 @@ public class TaskSeriesService { TaskSerie taskSerie = task.getTaskSerieItem().getTaskSerie(); task.setTaskSerieItem(null); taskSerieItemRepository.delete(item); - if(taskSerie.getTasks().size() <= 1) { + if(taskSerie.getTasks().isEmpty()) { + for(TaskSerieItem taskSerieItem : taskSerie.getTasks()) { + taskSerieItem.setTaskSerie(null); + } + taskSerie.getTasks().clear(); taskSeriesRepository.delete(taskSerie); } }