From 2d957d2baa433a35027ad3aa72295385c2e0ec61 Mon Sep 17 00:00:00 2001 From: Jan-Niclas Struewer <j.n.struewer@gmail.com> Date: Thu, 14 Dec 2023 10:07:16 +0100 Subject: [PATCH] updated save serialization order for tool runs --- .../dataprovider/repository/entity/RepositoryEntity.kt | 2 +- .../dataprovider/repository/service/RepositoryService.kt | 8 +++++++- .../iem/dataprovider/toolRun/service/ToolRunDbService.kt | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) 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 54407c6c..d0dfbcf7 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 9b7c683f..082476f3 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 f1461731..3d7de6f7 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) } -- GitLab