diff --git a/src/main/java/cz/muni/fi/pv168/project/db/task/TaskDao.java b/src/main/java/cz/muni/fi/pv168/project/db/task/TaskDao.java
index c3672585fbe417497a0bb9ac8dbf93afd5cf51cd..477e78229fb401b624313b814e7173ceb913434b 100644
--- a/src/main/java/cz/muni/fi/pv168/project/db/task/TaskDao.java
+++ b/src/main/java/cz/muni/fi/pv168/project/db/task/TaskDao.java
@@ -1,5 +1,6 @@
 package cz.muni.fi.pv168.project.db.task;
 
+import cz.muni.fi.pv168.project.data.category.Category;
 import cz.muni.fi.pv168.project.data.task.Task;
 import cz.muni.fi.pv168.project.data.task.TaskStatus;
 import cz.muni.fi.pv168.project.db.DataAccessException;
@@ -19,7 +20,6 @@ import java.sql.Types;
 import java.util.Collection;
 import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 public class TaskDao implements DataAccessObject<Task> {
@@ -94,15 +94,21 @@ public class TaskDao implements DataAccessObject<Task> {
     public Collection<Task> getAll() throws DataAccessException {
         try (var connection = dataSource.getConnection();
              var st = connection.prepareStatement("SELECT ID, TITLE, DUE_DATE, ESTIMATED_TIME, DESCRIPTION, TASK_STATUS FROM TASK")) {
-            Map<Long, Task> taskMap = new LinkedHashMap<>();
+            var taskMap = new LinkedHashMap<Long, Task>();
             try (var rs = st.executeQuery()) {
                 while (rs.next()) {
                     Task task = getFullTaskFromDb(rs);
                     taskMap.put(task.getId(), task);
                 }
 
+                var categoryMap = new LinkedHashMap<Long, Category>();
+                categoryDao.getAll().forEach(category -> {
+                    categoryMap.put(category.getId(), category);
+                });
+
                 taskMap.forEach((id, task) -> {
                     task.setDependencyTasks(dependencyDao.getAllIdsFor(id).stream().map(taskMap::get).collect(Collectors.toList()));
+                    task.setCategories(taskCategoryDao.getAllIdsFor(id).stream().map(categoryMap::get).collect(Collectors.toList()));
                 });
             }
             return taskMap.values();
@@ -142,12 +148,7 @@ public class TaskDao implements DataAccessObject<Task> {
                         rs.getDate("DUE_DATE").toLocalDate())
                 .setSubTasks(subTaskDao.getAllEntitiesFor(taskId))
                 .setDependencyTasks(List.of())
-                .setCategories(taskCategoryDao
-                        .getAllIdsFor(taskId)
-                        .stream()
-                        .map(categoryDao::fetch)
-                        .collect(Collectors.toList())
-                );
+                .setCategories(List.of());
         var description = rs.getString("DESCRIPTION");
         if (!rs.wasNull()) {
             taskBuilder.setDescription(description);