Pull request #368: RED-3839: SaveAndFlush and ClearAutomatically during update of manual redactions.

Merge in RED/persistence-service from RED-3839 to master

* commit '57e62e901f6738e21468952ebf176a296986b028':
  RED-3839: SaveAndFlush and ClearAutomatically during update of manual redactions.
This commit is contained in:
Philipp Schramm 2022-04-21 13:59:58 +02:00
commit 23eaa8ec3a
12 changed files with 78 additions and 69 deletions

View File

@ -47,7 +47,7 @@ public class AddRedactionPersistenceService {
manualRedactionEntry.setProcessedDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); manualRedactionEntry.setProcessedDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
} }
return manualRedactionRepository.save(manualRedactionEntry); return manualRedactionRepository.saveAndFlush(manualRedactionEntry);
} }

View File

@ -25,7 +25,7 @@ public class CommentPersistenceService {
public CommentEntity insert(CommentEntity comment) { public CommentEntity insert(CommentEntity comment) {
return commentRepository.save(comment); return commentRepository.saveAndFlush(comment);
} }

View File

@ -7,7 +7,6 @@ import java.util.Set;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualForceRedaction;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -17,6 +16,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.NotFo
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ForceRedactionRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ForceRedactionRepository;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ForceRedactionRequest; import com.iqser.red.service.persistence.service.v1.api.model.annotations.ForceRedactionRequest;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualForceRedaction;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -34,7 +34,7 @@ public class ForceRedactionPersistenceService {
manualForceRedaction.setId(new AnnotationEntityId(forceRedactionRequest.getAnnotationId(), fileId)); manualForceRedaction.setId(new AnnotationEntityId(forceRedactionRequest.getAnnotationId(), fileId));
BeanUtils.copyProperties(forceRedactionRequest, manualForceRedaction); BeanUtils.copyProperties(forceRedactionRequest, manualForceRedaction);
manualForceRedaction.setRequestDate(OffsetDateTime.now()); manualForceRedaction.setRequestDate(OffsetDateTime.now());
forceRedactionRepository.save(manualForceRedaction); forceRedactionRepository.saveAndFlush(manualForceRedaction);
} }
@Transactional @Transactional

View File

@ -1,5 +1,14 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations; package com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations;
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 com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualImageRecategorizationEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualImageRecategorizationEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
@ -7,14 +16,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.ImageRecategorizationRequest; import com.iqser.red.service.persistence.service.v1.api.model.annotations.ImageRecategorizationRequest;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualImageRecategorization; import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualImageRecategorization;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional; import lombok.RequiredArgsConstructor;
import java.time.OffsetDateTime;
import java.time.temporal.ChronoUnit;
import java.util.List;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -29,7 +32,7 @@ public class ImageRecategorizationPersistenceService {
manualImageRecategorization.setId(new AnnotationEntityId(imageRecategorizationRequest.getAnnotationId(), fileId)); manualImageRecategorization.setId(new AnnotationEntityId(imageRecategorizationRequest.getAnnotationId(), fileId));
BeanUtils.copyProperties(imageRecategorizationRequest, manualImageRecategorization); BeanUtils.copyProperties(imageRecategorizationRequest, manualImageRecategorization);
manualImageRecategorization.setRequestDate(OffsetDateTime.now()); manualImageRecategorization.setRequestDate(OffsetDateTime.now());
imageRecategorizationRepository.save(manualImageRecategorization); imageRecategorizationRepository.saveAndFlush(manualImageRecategorization);
} }

View File

@ -1,20 +1,23 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations; package com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations;
import java.time.OffsetDateTime;
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 com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisChangeRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisChangeRepository;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.LegalBasisChangeRequest; import com.iqser.red.service.persistence.service.v1.api.model.annotations.LegalBasisChangeRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional; import lombok.RequiredArgsConstructor;
import java.time.OffsetDateTime;
import java.time.temporal.ChronoUnit;
import java.util.Set;
import java.util.stream.Collectors;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -34,7 +37,7 @@ public class LegalBasisChangePersistenceService {
manualLegalBasisChange.setProcessedDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); manualLegalBasisChange.setProcessedDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
} }
return legalBasisChangeRepository.save(manualLegalBasisChange); return legalBasisChangeRepository.saveAndFlush(manualLegalBasisChange);
} }

View File

@ -37,7 +37,7 @@ public class RemoveRedactionPersistenceService {
BeanUtils.copyProperties(removeRedactionRequest, idRemoval); BeanUtils.copyProperties(removeRedactionRequest, idRemoval);
idRemoval.setRequestDate(OffsetDateTime.now()); idRemoval.setRequestDate(OffsetDateTime.now());
removeRedactionRepository.save(idRemoval); removeRedactionRepository.saveAndFlush(idRemoval);
} }

View File

@ -41,7 +41,7 @@ public class ResizeRedactionPersistenceService {
manualResizeRedaction.setProcessedDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); manualResizeRedaction.setProcessedDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS));
} }
return resizeRedactionRepository.save(manualResizeRedaction); return resizeRedactionRepository.saveAndFlush(manualResizeRedaction);
} }

View File

@ -1,23 +1,24 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; 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 com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
public interface ForceRedactionRepository extends JpaRepository<ManualForceRedactionEntity, AnnotationEntityId> { public interface ForceRedactionRepository extends JpaRepository<ManualForceRedactionEntity, AnnotationEntityId> {
List<ManualForceRedactionEntity> findByIdFileId(String fileId); List<ManualForceRedactionEntity> findByIdFileId(String fileId);
@Modifying
@Query("update ManualForceRedactionEntity mfr set mfr.status = :annotationStatus " + @Modifying(clearAutomatically = true)
"where mfr.id = :annotationEntityId") @Query("update ManualForceRedactionEntity mfr set mfr.status = :annotationStatus " + "where mfr.id = :annotationEntityId")
void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus); void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus);
@Modifying @Modifying

View File

@ -1,22 +1,23 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualImageRecategorizationEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; 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 com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualImageRecategorizationEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
public interface ImageRecategorizationRepository extends JpaRepository<ManualImageRecategorizationEntity, AnnotationEntityId> { public interface ImageRecategorizationRepository extends JpaRepository<ManualImageRecategorizationEntity, AnnotationEntityId> {
List<ManualImageRecategorizationEntity> findByIdFileId(String fileId); List<ManualImageRecategorizationEntity> findByIdFileId(String fileId);
@Modifying
@Query("update ManualImageRecategorizationEntity mir set mir.status = :annotationStatus " + @Modifying(clearAutomatically = true)
"where mir.id = :annotationEntityId") @Query("update ManualImageRecategorizationEntity mir set mir.status = :annotationStatus " + "where mir.id = :annotationEntityId")
void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus); void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus);
@Modifying @Modifying

View File

@ -1,21 +1,21 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; 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 com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
public interface LegalBasisChangeRepository extends JpaRepository<ManualLegalBasisChangeEntity, AnnotationEntityId> { public interface LegalBasisChangeRepository extends JpaRepository<ManualLegalBasisChangeEntity, AnnotationEntityId> {
@Modifying @Modifying(clearAutomatically = true)
@Query("update ManualLegalBasisChangeEntity mlbc set mlbc.status = :annotationStatus, mlbc.processedDate = :processedDate " + @Query("update ManualLegalBasisChangeEntity mlbc set mlbc.status = :annotationStatus, mlbc.processedDate = :processedDate " + "where mlbc.id = :annotationEntityId")
"where mlbc.id = :annotationEntityId")
void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus, OffsetDateTime processedDate); void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus, OffsetDateTime processedDate);
@Modifying @Modifying

View File

@ -1,16 +1,17 @@
package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; 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 com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
public interface RemoveRedactionRepository extends JpaRepository<IdRemovalEntity, AnnotationEntityId> { public interface RemoveRedactionRepository extends JpaRepository<IdRemovalEntity, AnnotationEntityId> {
List<IdRemovalEntity> findByIdFileId(String fileId); List<IdRemovalEntity> findByIdFileId(String fileId);
@ -20,9 +21,9 @@ public interface RemoveRedactionRepository extends JpaRepository<IdRemovalEntity
"where idr.id = :annotationEntityId") "where idr.id = :annotationEntityId")
void updateSoftDelete(AnnotationEntityId annotationEntityId, OffsetDateTime softDeletedTime); void updateSoftDelete(AnnotationEntityId annotationEntityId, OffsetDateTime softDeletedTime);
@Modifying
@Query("update IdRemovalEntity idr set idr.status = :annotationStatus, idr.processedDate = :processedDate " + @Modifying(clearAutomatically = true)
"where idr.id = :annotationEntityId") @Query("update IdRemovalEntity idr set idr.status = :annotationStatus, idr.processedDate = :processedDate " + "where idr.id = :annotationEntityId")
void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus, OffsetDateTime processedDate); void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus, OffsetDateTime processedDate);
@Modifying @Modifying

View File

@ -4,21 +4,21 @@ import java.time.OffsetDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId;
import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity;
import org.springframework.data.jpa.repository.Modifying; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus;
import org.springframework.data.jpa.repository.Query;
public interface ResizeRedactionRepository extends JpaRepository<ManualResizeRedactionEntity, AnnotationEntityId> { public interface ResizeRedactionRepository extends JpaRepository<ManualResizeRedactionEntity, AnnotationEntityId> {
List<ManualResizeRedactionEntity> findByIdFileId(String fileId); List<ManualResizeRedactionEntity> findByIdFileId(String fileId);
@Modifying
@Query("update ManualResizeRedactionEntity mrd set mrd.status = :annotationStatus, mrd.processedDate = :processedDate " + @Modifying(clearAutomatically = true)
"where mrd.id = :annotationEntityId") @Query("update ManualResizeRedactionEntity mrd set mrd.status = :annotationStatus, mrd.processedDate = :processedDate " + "where mrd.id = :annotationEntityId")
void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus, OffsetDateTime processedDate); void updateStatus(AnnotationEntityId annotationEntityId, AnnotationStatus annotationStatus, OffsetDateTime processedDate);
@Modifying @Modifying