hard delete dicts

This commit is contained in:
Kilian Schuettler 2024-07-26 15:14:33 +02:00
parent d851e94dd6
commit acb2d3b426
7 changed files with 32 additions and 5 deletions

View File

@ -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);
}

View File

@ -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);

View File

@ -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
@ -329,4 +335,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());
}
}
}

View File

@ -97,4 +97,7 @@ public interface TypeRepository extends JpaRepository<TypeEntity, String> {
@Query("update TypeEntity t set t.version = :version where t.id = :typeId")
void updateVersionForType(@Param("typeId") String typeId, @Param("version") long version);
List<TypeEntity> findAllByDossierTemplateId(String dossierTemplateId);
}

View File

@ -41,4 +41,7 @@ public interface EntryRepository extends EntryRepositoryCustom, JpaRepository<Di
List<DictionaryEntryEntity> findByTypeIdContainsAndValue(String typeId, String value);
void deleteAllByTypeId(String typeId);
}

View File

@ -36,4 +36,7 @@ public interface FalsePositiveEntryRepository extends FalsePositiveEntryReposito
List<DictionaryFalsePositiveEntryEntity> findByTypeIdContainsAndValue(String typeId, String value);
void deleteAllByTypeId(String type);
}

View File

@ -36,4 +36,7 @@ public interface FalseRecommendationEntryRepository extends FalseRecommendationE
List<DictionaryFalseRecommendationEntryEntity> findByTypeIdContainsAndValue(String typeId, String value);
void deleteAllByTypeId(String type);
}