Skip to content

Commit

Permalink
Merge pull request #1167 from ds-lcapellino/bug/XXX-fix-duplicate-key…
Browse files Browse the repository at this point in the history
…-exceptions

bug: xxx fix DataIntegrityViolationException by preventing dirty reads
  • Loading branch information
ds-mmaul authored Jul 4, 2024
2 parents fbc7a31 + b843499 commit f2d85b5
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@

@RequiredArgsConstructor
@Component
@Transactional(isolation = Isolation.READ_COMMITTED)
@Transactional(isolation = Isolation.READ_UNCOMMITTED)
public class AssetAsBuiltRepositoryImpl implements AssetAsBuiltRepository, AssetCallbackRepository {

private final JpaAssetAsBuiltRepository jpaAssetAsBuiltRepository;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@

@RequiredArgsConstructor
@Component
@Transactional(isolation = Isolation.READ_COMMITTED)
@Transactional(isolation = Isolation.READ_UNCOMMITTED)
public class AssetAsPlannedRepositoryImpl implements AssetAsPlannedRepository, AssetCallbackRepository {

private final JpaAssetAsPlannedRepository jpaAssetAsPlannedRepository;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
package org.eclipse.tractusx.traceability.assets.infrastructure.base.irs;

import lombok.extern.slf4j.Slf4j;
import org.eclipse.tractusx.traceability.assets.domain.asbuilt.repository.AssetAsBuiltRepository;
import org.eclipse.tractusx.traceability.assets.domain.asplanned.repository.AssetAsPlannedRepository;
import org.eclipse.tractusx.traceability.assets.domain.base.AssetRepository;
import org.eclipse.tractusx.traceability.assets.domain.base.JobRepository;
import org.eclipse.tractusx.traceability.assets.domain.base.model.AssetBase;
import org.eclipse.tractusx.traceability.assets.domain.base.model.ImportNote;
Expand Down Expand Up @@ -49,8 +52,8 @@
public class JobRepositoryImpl implements JobRepository {

private final TraceabilityProperties traceabilityProperties;
private final AssetCallbackRepository assetAsBuiltCallbackRepository;
private final AssetCallbackRepository assetAsPlannedCallbackRepository;
private final AssetAsBuiltRepository assetAsBuiltCallbackRepository;
private final AssetAsPlannedRepository assetAsPlannedCallbackRepository;

private static final String JOB_STATUS_COMPLETED = "COMPLETED";

Expand All @@ -62,9 +65,9 @@ public JobRepositoryImpl(
JobClient jobClient,
TraceabilityProperties traceabilityProperties,
@Qualifier("assetAsBuiltRepositoryImpl")
AssetCallbackRepository assetAsBuiltCallbackRepository,
AssetAsBuiltRepository assetAsBuiltCallbackRepository,
@Qualifier("assetAsPlannedRepositoryImpl")
AssetCallbackRepository assetAsPlannedCallbackRepository, IrsResponseAssetMapper assetMapperFactory) {
AssetAsPlannedRepository assetAsPlannedCallbackRepository, IrsResponseAssetMapper assetMapperFactory) {
this.traceabilityProperties = traceabilityProperties;
this.assetAsBuiltCallbackRepository = assetAsBuiltCallbackRepository;
this.assetAsPlannedCallbackRepository = assetAsPlannedCallbackRepository;
Expand Down Expand Up @@ -107,7 +110,7 @@ public void handleJobFinishedCallback(String jobId, String state) {
}
}

void saveOrUpdateAssets(AssetCallbackRepository repository, AssetBase asset) {
void saveOrUpdateAssets(AssetRepository repository, AssetBase asset) {
repository.save(asset);
}

Expand Down

0 comments on commit f2d85b5

Please sign in to comment.