RED-6162 - transactional fixes
This commit is contained in:
parent
5f772026b7
commit
cabdb5a507
@ -9,10 +9,11 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.UnexpectedRollbackException;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.CommentEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity;
|
||||
@ -87,43 +88,16 @@ public class ManualRedactionProviderService {
|
||||
}
|
||||
|
||||
|
||||
public void hardDeleteManualRedactions(String fileId, String annotationId) {
|
||||
|
||||
try {
|
||||
@Transactional(noRollbackFor = {EmptyResultDataAccessException.class})
|
||||
public void hardDeleteManualRedactions(String fileId, String annotationId) {
|
||||
addRedactionPersistenceService.hardDelete(fileId, annotationId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Ignored silently during deletion: {}", e.getMessage());
|
||||
}
|
||||
try {
|
||||
removeRedactionPersistenceService.hardDelete(fileId, annotationId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Ignored silently during deletion: {}", e.getMessage());
|
||||
}
|
||||
try {
|
||||
forceRedactionPersistenceService.hardDelete(fileId, annotationId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Ignored silently during deletion: {}", e.getMessage());
|
||||
}
|
||||
try {
|
||||
recategorizationPersistenceService.hardDelete(fileId, annotationId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Ignored silently during deletion: {}", e.getMessage());
|
||||
}
|
||||
try {
|
||||
legalBasisChangePersistenceService.hardDelete(fileId, annotationId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Ignored silently during deletion: {}", e.getMessage());
|
||||
}
|
||||
try {
|
||||
resizeRedactionPersistenceService.hardDelete(fileId, annotationId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Ignored silently during deletion: {}", e.getMessage());
|
||||
}
|
||||
try {
|
||||
commentPersistenceService.hardDelete(fileId, annotationId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Ignored silently during deletion: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
||||
@ -6,10 +6,9 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity;
|
||||
@ -92,7 +91,7 @@ public class AddRedactionPersistenceService {
|
||||
@Transactional
|
||||
public void hardDelete(String fileId, String annotationId) {
|
||||
|
||||
manualRedactionRepository.deleteById(new AnnotationEntityId(annotationId, fileId));
|
||||
manualRedactionRepository.hardDelete(new AnnotationEntityId(annotationId, fileId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.CommentEntity;
|
||||
@ -15,7 +16,9 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.NotFo
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.CommentRepository;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CommentPersistenceService {
|
||||
@ -53,7 +56,11 @@ public class CommentPersistenceService {
|
||||
@Transactional
|
||||
public void hardDelete(long commentId) {
|
||||
|
||||
commentRepository.deleteById(commentId);
|
||||
try {
|
||||
commentRepository.deleteById(commentId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Ignored silently during deletion: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -5,10 +5,9 @@ import java.time.temporal.ChronoUnit;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity;
|
||||
@ -18,7 +17,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ForceRedactionRequest;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ForceRedactionPersistenceService {
|
||||
@ -46,7 +47,7 @@ public class ForceRedactionPersistenceService {
|
||||
@Transactional
|
||||
public void hardDelete(String fileId, String annotationId) {
|
||||
|
||||
forceRedactionRepository.deleteById(new AnnotationEntityId(annotationId, fileId));
|
||||
forceRedactionRepository.hardDelete(new AnnotationEntityId(annotationId, fileId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -4,10 +4,9 @@ import java.time.OffsetDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualImageRecategorizationEntity;
|
||||
@ -17,7 +16,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ImageRecategorizationRequest;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ImageRecategorizationPersistenceService {
|
||||
@ -46,7 +47,7 @@ public class ImageRecategorizationPersistenceService {
|
||||
@Transactional
|
||||
public void hardDelete(String fileId, String annotationId) {
|
||||
|
||||
imageRecategorizationRepository.deleteById(new AnnotationEntityId(annotationId, fileId));
|
||||
imageRecategorizationRepository.hardDelete(new AnnotationEntityId(annotationId, fileId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -5,10 +5,9 @@ import java.time.temporal.ChronoUnit;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity;
|
||||
@ -18,7 +17,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.LegalBasisChangeRequest;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class LegalBasisChangePersistenceService {
|
||||
@ -45,7 +46,7 @@ public class LegalBasisChangePersistenceService {
|
||||
@Transactional
|
||||
public void hardDelete(String fileId, String annotationId) {
|
||||
|
||||
legalBasisChangeRepository.deleteById(new AnnotationEntityId(annotationId, fileId));
|
||||
legalBasisChangeRepository.hardDelete(new AnnotationEntityId(annotationId, fileId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,10 +6,9 @@ import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity;
|
||||
@ -20,7 +19,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RemoveRedactionPersistenceService {
|
||||
@ -61,7 +62,7 @@ public class RemoveRedactionPersistenceService {
|
||||
@Transactional
|
||||
public void hardDelete(String fileId, String annotationId) {
|
||||
|
||||
removeRedactionRepository.deleteById(new AnnotationEntityId(annotationId, fileId));
|
||||
removeRedactionRepository.hardDelete(new AnnotationEntityId(annotationId, fileId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -4,10 +4,9 @@ import java.time.OffsetDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity;
|
||||
@ -19,7 +18,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ResizeRedactionRequest;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ResizeRedactionPersistenceService {
|
||||
@ -62,7 +63,7 @@ public class ResizeRedactionPersistenceService {
|
||||
@Transactional
|
||||
public void hardDelete(String fileId, String annotationId) {
|
||||
|
||||
resizeRedactionRepository.deleteById(new AnnotationEntityId(annotationId, fileId));
|
||||
resizeRedactionRepository.hardDelete(new AnnotationEntityId(annotationId, fileId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -7,6 +7,7 @@ import java.util.Optional;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity;
|
||||
@ -14,7 +15,10 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
|
||||
public interface ForceRedactionRepository extends JpaRepository<ManualForceRedactionEntity, AnnotationEntityId> {
|
||||
|
||||
List<ManualForceRedactionEntity> findByIdFileId(String fileId);
|
||||
@Transactional
|
||||
@Modifying(flushAutomatically = true, clearAutomatically = true)
|
||||
@Query("delete from ManualForceRedactionEntity e where e.id = :id")
|
||||
void hardDelete(AnnotationEntityId id);
|
||||
|
||||
|
||||
@Modifying(clearAutomatically = true)
|
||||
|
||||
@ -7,6 +7,7 @@ import java.util.Optional;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualImageRecategorizationEntity;
|
||||
@ -14,7 +15,10 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
|
||||
public interface ImageRecategorizationRepository extends JpaRepository<ManualImageRecategorizationEntity, AnnotationEntityId> {
|
||||
|
||||
List<ManualImageRecategorizationEntity> findByIdFileId(String fileId);
|
||||
@Transactional
|
||||
@Modifying(flushAutomatically = true, clearAutomatically = true)
|
||||
@Query("delete from ManualImageRecategorizationEntity e where e.id = :id")
|
||||
void hardDelete(AnnotationEntityId id);
|
||||
|
||||
|
||||
@Modifying(clearAutomatically = true)
|
||||
|
||||
@ -7,6 +7,7 @@ import java.util.Optional;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity;
|
||||
@ -14,6 +15,12 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
|
||||
public interface LegalBasisChangeRepository extends JpaRepository<ManualLegalBasisChangeEntity, AnnotationEntityId> {
|
||||
|
||||
@Transactional
|
||||
@Modifying(flushAutomatically = true, clearAutomatically = true)
|
||||
@Query("delete from ManualLegalBasisChangeEntity e where e.id = :id")
|
||||
void hardDelete(AnnotationEntityId id);
|
||||
|
||||
|
||||
@Modifying(clearAutomatically = true)
|
||||
@Query("update ManualLegalBasisChangeEntity mlbc set mlbc.status = :annotationStatus, mlbc.processedDate = :processedDate " + "where mlbc.id = :annotationEntityId")
|
||||
void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus, OffsetDateTime processedDate);
|
||||
|
||||
@ -8,6 +8,7 @@ import java.util.Set;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity;
|
||||
@ -15,7 +16,10 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
|
||||
public interface ManualRedactionRepository extends JpaRepository<ManualRedactionEntryEntity, AnnotationEntityId> {
|
||||
|
||||
List<ManualRedactionEntryEntity> findByIdFileId(String fileId);
|
||||
@Transactional
|
||||
@Modifying(flushAutomatically = true, clearAutomatically = true)
|
||||
@Query("delete from ManualForceRedactionEntity e where e.id = :id")
|
||||
void hardDelete(AnnotationEntityId id);
|
||||
|
||||
|
||||
@Modifying
|
||||
|
||||
@ -7,6 +7,7 @@ import java.util.Optional;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity;
|
||||
@ -14,6 +15,12 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
|
||||
public interface RemoveRedactionRepository extends JpaRepository<IdRemovalEntity, AnnotationEntityId> {
|
||||
|
||||
@Transactional
|
||||
@Modifying(flushAutomatically = true, clearAutomatically = true)
|
||||
@Query("delete from IdRemovalEntity e where e.id = :id")
|
||||
void hardDelete(AnnotationEntityId id);
|
||||
|
||||
|
||||
@Modifying
|
||||
@Query("update IdRemovalEntity idr set idr.softDeletedTime = :softDeletedTime where idr.id = :annotationEntityId")
|
||||
void updateSoftDelete(AnnotationEntityId annotationEntityId, OffsetDateTime softDeletedTime);
|
||||
|
||||
@ -7,6 +7,7 @@ import java.util.Optional;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity;
|
||||
@ -14,7 +15,10 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
|
||||
|
||||
public interface ResizeRedactionRepository extends JpaRepository<ManualResizeRedactionEntity, AnnotationEntityId> {
|
||||
|
||||
List<ManualResizeRedactionEntity> findByIdFileId(String fileId);
|
||||
@Transactional
|
||||
@Modifying(flushAutomatically = true, clearAutomatically = true)
|
||||
@Query("delete from ManualResizeRedactionEntity e where e.id = :id")
|
||||
void hardDelete(AnnotationEntityId id);
|
||||
|
||||
|
||||
@Modifying(clearAutomatically = true)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user