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 cc445e6c6bc2fd5a242f2640eab3c549a56468bf..58ea2abf0c60bfeb23e0d94f6a42c45b44915d25 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(); }