diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/entity/RepositoryEntity.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/entity/RepositoryEntity.kt
index 54407c6ce026eb30cb39ac259e529aa568873a9d..d0dfbcf78e771b1d9941f94fad6a4dfb027e867e 100644
--- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/entity/RepositoryEntity.kt
+++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/entity/RepositoryEntity.kt
@@ -20,7 +20,7 @@ class RepositoryEntity(
     @OrderBy("last_updated_at DESC")
     @OneToMany(
         mappedBy = "repository",
-        cascade = [CascadeType.MERGE, CascadeType.REFRESH, CascadeType.REMOVE, CascadeType.DETACH],
+        cascade = [CascadeType.ALL],
         orphanRemoval = true
     )
     val toolRuns: MutableList<ToolRunEntity> = mutableListOf(),
diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/service/RepositoryService.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/service/RepositoryService.kt
index 9b7c683f3c6f240cd4a0eb846fb3ddd054134c93..082476f357ef8c951c7e0458f6e6f9be87d0347c 100644
--- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/service/RepositoryService.kt
+++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/repository/service/RepositoryService.kt
@@ -24,7 +24,7 @@ class RepositoryService(
     @Transactional
     fun getOrCreate(gitRepository: RepositoryCreateDto): RepositoryEntity {
         logger.info("Checking if repository with ${gitRepository.id} exists")
-        var repo = repositoryRepository.findByProjectId(gitRepository.id)
+        var repo = findRepoById(gitRepository.id)
         if (repo == null) {
             logger.info("Creating repository with id ${gitRepository.id}")
             repo = repositoryRepository.save(gitRepository.toDbObject())
@@ -32,6 +32,10 @@ class RepositoryService(
         return repo
     }
 
+    fun saveRepository(repositoryEntity: RepositoryEntity) {
+        repositoryRepository.saveAndFlush(repositoryEntity)
+    }
+
     /**
      * Queries the gitlab api to get the repo name, url, and id.
      */
@@ -39,6 +43,7 @@ class RepositoryService(
         return openCodeGitlabApi.getRepositoryInfo(projectId)
     }
 
+    @Transactional(readOnly = true)
     fun findRepoById(projectId: Long): RepositoryEntity? {
         return repositoryRepository.findByProjectId(projectId)
     }
@@ -47,6 +52,7 @@ class RepositoryService(
         return repositoryRepository.findAll()
     }
 
+    @Transactional
     fun updateVisualizationConsent(projectId: Long, repositoryConsentDto: RepositoryConsentDto) {
         val repo = findRepoById(projectId)
         if (repo != null) {
diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/toolRun/service/ToolRunDbService.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/toolRun/service/ToolRunDbService.kt
index f1461731cd00fd4b13cf38808b72794b9e68d54c..3d7de6f73b59e15cf8e6b150e3a65d68359ca7e6 100644
--- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/toolRun/service/ToolRunDbService.kt
+++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/toolRun/service/ToolRunDbService.kt
@@ -49,8 +49,8 @@ class ToolRunDbService(
             toolRun.kpiEntities.addAll(kpis)
         }
 
-
-        toolRunRepository.saveAndFlush(toolRun)
+        repo.toolRuns.add(toolRun)
+        repositoryService.saveRepository(repo)
     }