From ad690ae29142637f83ab7c4057acbcacc5b517ba Mon Sep 17 00:00:00 2001 From: "Artem Dobrynin (EPAM)" <artem_dobrynin@epam.com> Date: Mon, 8 Nov 2021 14:19:30 +0000 Subject: [PATCH] Fixed upsert method in reference module (GONRG-3573) --- .../tags/dataaccess/MongoLegalTagRepository.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/provider/legal-reference/src/main/java/org/opengroup/osdu/legal/tags/dataaccess/MongoLegalTagRepository.java b/provider/legal-reference/src/main/java/org/opengroup/osdu/legal/tags/dataaccess/MongoLegalTagRepository.java index cc445e6c6..58ea2abf0 100644 --- a/provider/legal-reference/src/main/java/org/opengroup/osdu/legal/tags/dataaccess/MongoLegalTagRepository.java +++ b/provider/legal-reference/src/main/java/org/opengroup/osdu/legal/tags/dataaccess/MongoLegalTagRepository.java @@ -35,6 +35,7 @@ import org.opengroup.osdu.legal.config.MongoDBConfigProperties; import org.opengroup.osdu.legal.entity.LegalTagMongoEntity; import org.opengroup.osdu.legal.provider.interfaces.ILegalTagRepository; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DuplicateKeyException; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; @@ -59,7 +60,15 @@ public class MongoLegalTagRepository implements ILegalTagRepository { MongoOperations ops = clientProvider.getOps(mongoDBConfigProperties.getMongoDbName()); - LegalTagMongoEntity savedEntity = ops.save(convertFrom(legalTag), LEGAL_TAGS_ENTITYNAME); + LegalTagMongoEntity savedEntity = null; + + try { + savedEntity = ops.insert(convertFrom(legalTag), LEGAL_TAGS_ENTITYNAME); + } catch (DuplicateKeyException ex){ + throw new AppException(409, "Legal tag conflict", String.format( + "A LegalTag already exists for the given name %s. Can't create again. Id is %s", + legalTag.getName(), legalTag.getId())); + } return savedEntity.getId(); } -- GitLab