From b19f5d2fa6815f1484cf45b1291809d41fdc271c Mon Sep 17 00:00:00 2001 From: Slimane Amar <63394973+SlimaneAmar@users.noreply.github.com> Date: Fri, 24 Nov 2023 13:01:20 +0100 Subject: [PATCH] Remove the id automatically generated to have a unique index for ELS (#382) Signed-off-by: Slimane AMAR --- .../elasticsearch/BasicEquipmentInfos.java | 12 +++++++++- .../elasticsearch/EquipmentInfosService.java | 2 -- .../service/EquipmentInfosServiceTests.java | 22 +++++++++++++++++-- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gridsuite/modification/server/dto/elasticsearch/BasicEquipmentInfos.java b/src/main/java/org/gridsuite/modification/server/dto/elasticsearch/BasicEquipmentInfos.java index e1d46a85f..f2a289a5c 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/elasticsearch/BasicEquipmentInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/elasticsearch/BasicEquipmentInfos.java @@ -8,6 +8,7 @@ import lombok.*; import lombok.experimental.SuperBuilder; +import org.springframework.data.annotation.AccessType; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Field; import org.springframework.data.elasticsearch.annotations.FieldType; @@ -27,7 +28,16 @@ @EqualsAndHashCode public class BasicEquipmentInfos { @Id - private String uniqueId; + @AccessType(AccessType.Type.PROPERTY) + @SuppressWarnings("unused") + public String getUniqueId() { + return networkUuid + "_" + variantId + "_" + id; + } + + @SuppressWarnings("unused") + public void setUniqueId(String uniqueId) { + // No setter because it a composite value + } @MultiField( mainField = @Field(name = "equipmentId", type = FieldType.Text), diff --git a/src/main/java/org/gridsuite/modification/server/elasticsearch/EquipmentInfosService.java b/src/main/java/org/gridsuite/modification/server/elasticsearch/EquipmentInfosService.java index 8809e4df7..d883a74dc 100644 --- a/src/main/java/org/gridsuite/modification/server/elasticsearch/EquipmentInfosService.java +++ b/src/main/java/org/gridsuite/modification/server/elasticsearch/EquipmentInfosService.java @@ -65,7 +65,6 @@ public void cloneVariantModifications(@NonNull UUID networkUuid, @NonNull String addAllEquipmentInfos( equipmentInfosRepository.findAllByNetworkUuidAndVariantId(networkUuid, variantToCloneId).stream() .map(equipmentInfos -> { - equipmentInfos.setUniqueId(null); equipmentInfos.setVariantId(variantId); return equipmentInfos; }) @@ -74,7 +73,6 @@ public void cloneVariantModifications(@NonNull UUID networkUuid, @NonNull String addAllTombstonedEquipmentInfos( tombstonedEquipmentInfosRepository.findAllByNetworkUuidAndVariantId(networkUuid, variantToCloneId).stream() .map(tombstonedEquipmentInfos -> { - tombstonedEquipmentInfos.setUniqueId(null); tombstonedEquipmentInfos.setVariantId(variantId); return tombstonedEquipmentInfos; }) diff --git a/src/test/java/org/gridsuite/modification/server/service/EquipmentInfosServiceTests.java b/src/test/java/org/gridsuite/modification/server/service/EquipmentInfosServiceTests.java index 1d180073c..9ea8e4e7e 100644 --- a/src/test/java/org/gridsuite/modification/server/service/EquipmentInfosServiceTests.java +++ b/src/test/java/org/gridsuite/modification/server/service/EquipmentInfosServiceTests.java @@ -74,8 +74,26 @@ public void testAddDeleteEquipmentInfos() { .substations(Set.of(SubstationInfos.builder().id("s1").name("s1").build())) .build(); equipmentInfosService.addAllEquipmentInfos(List.of(equipmentInfos)); - assertNotNull(equipmentInfosRepository.findAllByNetworkUuidAndVariantId(NETWORK_UUID, VARIANT_NAME_1).get(0)); - assertEquals(equipmentInfos, equipmentInfosRepository.findAllByNetworkUuidAndVariantId(NETWORK_UUID, VARIANT_NAME_1).get(0)); + List infosDB = equipmentInfosRepository.findAllByNetworkUuidAndVariantId(NETWORK_UUID, VARIANT_NAME_1); + assertEquals(1, infosDB.size()); + assertEquals(equipmentInfos, infosDB.get(0)); + assertEquals(equipmentInfos.getNetworkUuid() + "_" + equipmentInfos.getVariantId() + "_" + equipmentInfos.getId(), infosDB.get(0).getUniqueId()); + + // Change name but uniqueIds are same + equipmentInfos = EquipmentInfos.builder() + .networkUuid(NETWORK_UUID) + .id("id1") + .variantId(VARIANT_NAME_1) + .name("newName") + .type(IdentifiableType.LOAD.name()) + .voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())) + .substations(Set.of(SubstationInfos.builder().id("s1").name("s1").build())) + .build(); + equipmentInfosService.addAllEquipmentInfos(List.of(equipmentInfos)); + infosDB = equipmentInfosRepository.findAllByNetworkUuidAndVariantId(NETWORK_UUID, VARIANT_NAME_1); + assertEquals(1, infosDB.size()); + assertEquals(equipmentInfos, infosDB.get(0)); + assertEquals(equipmentInfos.getNetworkUuid() + "_" + equipmentInfos.getVariantId() + "_" + equipmentInfos.getId(), infosDB.get(0).getUniqueId()); equipmentInfosRepository.deleteByIdInAndNetworkUuidAndVariantId(List.of(equipmentInfos.getId()), NETWORK_UUID, VARIANT_NAME_1); assertEquals(0, equipmentInfosRepository.findAllByNetworkUuidAndVariantId(NETWORK_UUID, VARIANT_NAME_1).size());