From 64a6b07befb7b70c9cc0baeae6aa6a185d62d5d2 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Fri, 26 Jul 2024 15:14:33 +0200 Subject: [PATCH] hard delete dicts --- .../service/DictionaryManagementService.java | 6 ++---- .../DossierTemplateManagementService.java | 2 +- .../DictionaryPersistenceService.java | 17 +++++++++++++++++ .../persistence/repository/TypeRepository.java | 3 +++ .../dictionaryentry/EntryRepository.java | 3 +++ .../FalsePositiveEntryRepository.java | 3 +++ .../FalseRecommendationEntryRepository.java | 3 +++ 7 files changed, 32 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java index b762a024b..248806af3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java @@ -405,11 +405,9 @@ public class DictionaryManagementService { } - public void deleteByDossierTemplateId(String dossierTemplateId) { + public void hardDeleteByDossierTemplateId(String dossierTemplateId) { - for (TypeEntity typeEntity : dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplateId, false)) { - deleteType(typeEntity.getId()); - } + dictionaryPersistenceService.hardDeleteTypesByDossierTemplateId(dossierTemplateId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java index 32572c503..2160e4740 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java @@ -48,7 +48,7 @@ public class DossierTemplateManagementService { public void deleteDossierTemplateCompletely(String dossierTemplateId) { - dictionaryManagementService.deleteByDossierTemplateId(dossierTemplateId); + dictionaryManagementService.hardDeleteByDossierTemplateId(dossierTemplateId); componentMappingService.deleteByDossierTemplateId(dossierTemplateId); dossierDeletionService.deleteAllDossiersInTemplate(dossierTemplateId); dossierTemplatePersistenceService.deleteDossierTemplate(dossierTemplateId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java index 9427651e4..93d90f097 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java @@ -15,8 +15,11 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Confl import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionarySummaryResponse; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.TypeRankSummary; @@ -34,6 +37,9 @@ public class DictionaryPersistenceService { private final DossierRepository dossierRepository; private final EntryRepository entryRepository; + private final FalsePositiveEntryRepository falsePositiveEntryRepository; + private final FileAttributesRepository fileAttributesRepository; + private final FalseRecommendationEntryRepository falseRecommendationEntryRepository; @Transactional(Transactional.TxType.REQUIRES_NEW) // This needs a single transaction because of the creation of types on the fly, otherwise add entries will fails @@ -331,4 +337,15 @@ public class DictionaryPersistenceService { }); } + + public void hardDeleteTypesByDossierTemplateId(String dossierTemplateId) { + + for (TypeEntity typeEntity : typeRepository.findAllByDossierTemplateId(dossierTemplateId)) { + entryRepository.deleteAllByTypeId(typeEntity.getType()); + falsePositiveEntryRepository.deleteAllByTypeId(typeEntity.getType()); + falseRecommendationEntryRepository.deleteAllByTypeId(typeEntity.getType()); + typeRepository.deleteById(typeEntity.getId()); + } + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java index f7178898d..ec27097f3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java @@ -97,4 +97,7 @@ public interface TypeRepository extends JpaRepository { @Query("update TypeEntity t set t.version = :version where t.id = :typeId") void updateVersionForType(@Param("typeId") String typeId, @Param("version") long version); + + List findAllByDossierTemplateId(String dossierTemplateId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/EntryRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/EntryRepository.java index d1892996f..8a89f442d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/EntryRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/EntryRepository.java @@ -41,4 +41,7 @@ public interface EntryRepository extends EntryRepositoryCustom, JpaRepository findByTypeIdContainsAndValue(String typeId, String value); + + void deleteAllByTypeId(String typeId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalsePositiveEntryRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalsePositiveEntryRepository.java index 5deba32f7..57523b128 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalsePositiveEntryRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalsePositiveEntryRepository.java @@ -36,4 +36,7 @@ public interface FalsePositiveEntryRepository extends FalsePositiveEntryReposito List findByTypeIdContainsAndValue(String typeId, String value); + + void deleteAllByTypeId(String type); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalseRecommendationEntryRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalseRecommendationEntryRepository.java index 818f545b9..867517f4e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalseRecommendationEntryRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalseRecommendationEntryRepository.java @@ -36,4 +36,7 @@ public interface FalseRecommendationEntryRepository extends FalseRecommendationE List findByTypeIdContainsAndValue(String typeId, String value); + + void deleteAllByTypeId(String type); + }