Skip to content

Commit f2de482

Browse files
committed
Fix networkAreadDiagramLayout retrieval + better constaint names
Signed-off-by: Ayoub LABIDI <[email protected]>
1 parent 86d46b5 commit f2de482

File tree

8 files changed

+64
-37
lines changed

8 files changed

+64
-37
lines changed

src/main/java/org/gridsuite/studyconfig/server/entities/studylayout/AbstractDiagramLayoutEntity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public abstract class AbstractDiagramLayoutEntity {
2222
UUID diagramUuid;
2323

2424
@ElementCollection
25+
@CollectionTable(foreignKey = @ForeignKey(name = "fk_grid_layout_abstract_diagram"))
2526
@MapKeyColumn(name = "grid_layout_key")
2627
Map<String, DiagramGridLayoutEntity> gridLayout;
2728

src/main/java/org/gridsuite/studyconfig/server/entities/studylayout/NetworkAreaDiagramLayoutEntity.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.gridsuite.studyconfig.server.entities.studylayout;
22

3-
import jakarta.persistence.Entity;
3+
import jakarta.persistence.*;
44
import lombok.AllArgsConstructor;
55
import lombok.NoArgsConstructor;
66
import lombok.experimental.SuperBuilder;
@@ -14,8 +14,16 @@
1414
@SuperBuilder
1515
@NoArgsConstructor
1616
@AllArgsConstructor
17+
@PrimaryKeyJoinColumn(foreignKey = @ForeignKey(name = "fk_network_area_diagram_layout_abstract"))
1718
public class NetworkAreaDiagramLayoutEntity extends AbstractDiagramLayoutEntity {
19+
@ElementCollection()
20+
@CollectionTable(
21+
name = "network_area_diagram_voltage_level_ids",
22+
joinColumns = @JoinColumn(name = "network_area_diagram_layout_id"),
23+
foreignKey = @ForeignKey(name = "fk_network_area_diagram_voltage_level_ids")
24+
)
1825
List<String> voltageLevelIds;
26+
1927
Integer depth;
2028

2129
public NetworkAreaDiagramLayout toDto() {
@@ -26,7 +34,7 @@ public NetworkAreaDiagramLayout toDto() {
2634
entry -> entry.getValue().toDto()
2735
)))
2836
.depth(depth)
29-
.voltageLevelIds(voltageLevelIds)
37+
.voltageLevelIds(voltageLevelIds != null ? List.copyOf(voltageLevelIds) : null)
3038
.build();
3139
}
3240
}

src/main/java/org/gridsuite/studyconfig/server/entities/studylayout/StudyLayoutEntity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class StudyLayoutEntity {
1919
UUID uuid;
2020

2121
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
22+
@JoinColumn(name = "study_layout_id", foreignKey = @ForeignKey(name = "fk_diagram_layout_study_layout"))
2223
List<AbstractDiagramLayoutEntity> diagramGridLayoutEntityList;
2324

2425
public StudyLayout toDto() {

src/main/java/org/gridsuite/studyconfig/server/entities/studylayout/SubstationDiagramLayoutEntity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.gridsuite.studyconfig.server.entities.studylayout;
22

3-
import jakarta.persistence.Entity;
3+
import jakarta.persistence.*;
44
import lombok.AllArgsConstructor;
55
import lombok.NoArgsConstructor;
66
import lombok.experimental.SuperBuilder;
@@ -13,6 +13,7 @@
1313
@NoArgsConstructor
1414
@SuperBuilder
1515
@Entity
16+
@PrimaryKeyJoinColumn(foreignKey = @ForeignKey(name = "fk_substation_diagram_layout_abstract"))
1617
public class SubstationDiagramLayoutEntity extends AbstractDiagramLayoutEntity {
1718
String substationId;
1819

src/main/java/org/gridsuite/studyconfig/server/entities/studylayout/VoltageLevelLayoutEntity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.gridsuite.studyconfig.server.entities.studylayout;
22

3-
import jakarta.persistence.Entity;
3+
import jakarta.persistence.*;
44
import lombok.AllArgsConstructor;
55
import lombok.NoArgsConstructor;
66
import lombok.experimental.SuperBuilder;
@@ -13,6 +13,7 @@
1313
@NoArgsConstructor
1414
@SuperBuilder
1515
@Entity
16+
@PrimaryKeyJoinColumn(foreignKey = @ForeignKey(name = "fk_voltage_level_layout_abstract"))
1617
public class VoltageLevelLayoutEntity extends AbstractDiagramLayoutEntity {
1718
String voltageLevelId;
1819

Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
22
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd">
3-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-6">
3+
<changeSet author="labidiayo (generated)" id="1752596245930-6">
44
<createTable tableName="abstract_diagram_layout_entity">
55
<column name="id" type="UUID">
66
<constraints nullable="false" primaryKey="true" primaryKeyName="abstract_diagram_layout_entityPK"/>
77
</column>
88
<column name="diagram_uuid" type="UUID"/>
9+
<column name="study_layout_id" type="UUID"/>
910
</createTable>
1011
</changeSet>
11-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-7">
12+
<changeSet author="labidiayo (generated)" id="1752596245930-7">
1213
<createTable tableName="abstract_diagram_layout_entity_grid_layout">
1314
<column name="abstract_diagram_layout_entity_id" type="UUID">
1415
<constraints nullable="false" primaryKey="true" primaryKeyName="abstract_diagram_layout_entity_grid_layoutPK"/>
@@ -22,67 +23,61 @@
2223
</column>
2324
</createTable>
2425
</changeSet>
25-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-8">
26+
<changeSet author="labidiayo (generated)" id="1752596245930-8">
2627
<createTable tableName="network_area_diagram_layout_entity">
2728
<column name="depth" type="INT"/>
28-
<column name="voltage_level_ids" type="VARCHAR(255)"/>
2929
<column name="id" type="UUID">
3030
<constraints nullable="false" primaryKey="true" primaryKeyName="network_area_diagram_layout_entityPK"/>
3131
</column>
3232
</createTable>
3333
</changeSet>
34-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-9">
35-
<createTable tableName="study_layout_entity">
36-
<column name="uuid" type="UUID">
37-
<constraints nullable="false" primaryKey="true" primaryKeyName="study_layout_entityPK"/>
34+
<changeSet author="labidiayo (generated)" id="1752596245930-9">
35+
<createTable tableName="network_area_diagram_voltage_level_ids">
36+
<column name="network_area_diagram_layout_id" type="UUID">
37+
<constraints nullable="false"/>
3838
</column>
39+
<column name="voltage_level_ids" type="VARCHAR(255)"/>
3940
</createTable>
4041
</changeSet>
41-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-10">
42-
<createTable tableName="study_layout_entity_diagram_grid_layout_entity_list">
43-
<column name="study_layout_entity_uuid" type="UUID">
44-
<constraints nullable="false"/>
45-
</column>
46-
<column name="diagram_grid_layout_entity_list_id" type="UUID">
47-
<constraints nullable="false"/>
42+
<changeSet author="labidiayo (generated)" id="1752596245930-10">
43+
<createTable tableName="study_layout_entity">
44+
<column name="uuid" type="UUID">
45+
<constraints nullable="false" primaryKey="true" primaryKeyName="study_layout_entityPK"/>
4846
</column>
4947
</createTable>
5048
</changeSet>
51-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-11">
49+
<changeSet author="labidiayo (generated)" id="1752596245930-11">
5250
<createTable tableName="substation_diagram_layout_entity">
5351
<column name="substation_id" type="VARCHAR(255)"/>
5452
<column name="id" type="UUID">
5553
<constraints nullable="false" primaryKey="true" primaryKeyName="substation_diagram_layout_entityPK"/>
5654
</column>
5755
</createTable>
5856
</changeSet>
59-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-12">
57+
<changeSet author="labidiayo (generated)" id="1752596245930-12">
6058
<createTable tableName="voltage_level_layout_entity">
6159
<column name="voltage_level_id" type="VARCHAR(255)"/>
6260
<column name="id" type="UUID">
6361
<constraints nullable="false" primaryKey="true" primaryKeyName="voltage_level_layout_entityPK"/>
6462
</column>
6563
</createTable>
6664
</changeSet>
67-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-13">
68-
<addUniqueConstraint columnNames="diagram_grid_layout_entity_list_id" constraintName="UC_STUDY_LAYOUT_ENTITY_DIAGRAM_GRID_LAYOUT_ENTITY_LISTDIAGRAM_G" tableName="study_layout_entity_diagram_grid_layout_entity_list"/>
69-
</changeSet>
70-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-14">
71-
<addForeignKeyConstraint baseColumnNames="id" baseTableName="substation_diagram_layout_entity" constraintName="FK2tsbb7pm5hf89f9babg2lx33j" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
65+
<changeSet author="labidiayo (generated)" id="1752596245930-13">
66+
<addForeignKeyConstraint baseColumnNames="study_layout_id" baseTableName="abstract_diagram_layout_entity" constraintName="fk_diagram_layout_study_layout" deferrable="false" initiallyDeferred="false" referencedColumnNames="uuid" referencedTableName="study_layout_entity" validate="true"/>
7267
</changeSet>
73-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-15">
74-
<addForeignKeyConstraint baseColumnNames="id" baseTableName="voltage_level_layout_entity" constraintName="FK3xl7wisebuw5g4u0uau61er50" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
68+
<changeSet author="labidiayo (generated)" id="1752596245930-14">
69+
<addForeignKeyConstraint baseColumnNames="abstract_diagram_layout_entity_id" baseTableName="abstract_diagram_layout_entity_grid_layout" constraintName="fk_grid_layout_abstract_diagram" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
7570
</changeSet>
76-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-16">
77-
<addForeignKeyConstraint baseColumnNames="study_layout_entity_uuid" baseTableName="study_layout_entity_diagram_grid_layout_entity_list" constraintName="FKh16y89fms0ro4ut2nlg990odi" deferrable="false" initiallyDeferred="false" referencedColumnNames="uuid" referencedTableName="study_layout_entity" validate="true"/>
71+
<changeSet author="labidiayo (generated)" id="1752596245930-15">
72+
<addForeignKeyConstraint baseColumnNames="id" baseTableName="network_area_diagram_layout_entity" constraintName="fk_network_area_diagram_layout_abstract" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
7873
</changeSet>
79-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-17">
80-
<addForeignKeyConstraint baseColumnNames="abstract_diagram_layout_entity_id" baseTableName="abstract_diagram_layout_entity_grid_layout" constraintName="FKivorvbl2cx0e1fqxn5t3nwymu" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
74+
<changeSet author="labidiayo (generated)" id="1752596245930-16">
75+
<addForeignKeyConstraint baseColumnNames="network_area_diagram_layout_id" baseTableName="network_area_diagram_voltage_level_ids" constraintName="fk_network_area_diagram_voltage_level_ids" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="network_area_diagram_layout_entity" validate="true"/>
8176
</changeSet>
82-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-18">
83-
<addForeignKeyConstraint baseColumnNames="id" baseTableName="network_area_diagram_layout_entity" constraintName="FKpbgbxh5c80ige6hyvfkq65og2" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
77+
<changeSet author="labidiayo (generated)" id="1752596245930-17">
78+
<addForeignKeyConstraint baseColumnNames="id" baseTableName="substation_diagram_layout_entity" constraintName="fk_substation_diagram_layout_abstract" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
8479
</changeSet>
85-
<changeSet author="lesaulnierkev (generated)" id="1751964921814-19">
86-
<addForeignKeyConstraint baseColumnNames="diagram_grid_layout_entity_list_id" baseTableName="study_layout_entity_diagram_grid_layout_entity_list" constraintName="FKpi78ret7e9aykb7reocqduog7" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
80+
<changeSet author="labidiayo (generated)" id="1752596245930-18">
81+
<addForeignKeyConstraint baseColumnNames="id" baseTableName="voltage_level_layout_entity" constraintName="fk_voltage_level_layout_abstract" deferrable="false" initiallyDeferred="false" referencedColumnNames="id" referencedTableName="abstract_diagram_layout_entity" validate="true"/>
8782
</changeSet>
8883
</databaseChangeLog>

src/main/resources/db/changelog/db.changelog-master.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,5 @@ databaseChangeLog:
6363
file: changesets/changelog_20250619T162423Z.xml
6464
relativeToChangelogFile: true
6565
- include:
66-
file: changesets/changelog_20250708T085438Z.xml
66+
file: changesets/changelog_20250715T161714Z.xml
6767
relativeToChangelogFile: true

src/test/java/org/gridsuite/studyconfig/server/StudyLayoutControllerTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.databind.ObjectMapper;
44
import org.gridsuite.studyconfig.server.dto.studylayout.StudyLayout;
55
import org.gridsuite.studyconfig.server.dto.studylayout.diagramlayout.DiagramGridLayout;
6+
import org.gridsuite.studyconfig.server.dto.studylayout.diagramlayout.NetworkAreaDiagramLayout;
67
import org.gridsuite.studyconfig.server.dto.studylayout.diagramlayout.SubstationDiagramLayout;
78
import org.gridsuite.studyconfig.server.dto.studylayout.diagramlayout.VoltageLevelDiagramLayout;
89
import org.gridsuite.studyconfig.server.entities.studylayout.StudyLayoutEntity;
@@ -87,6 +88,25 @@ void testUpdateStudyLayout() throws Exception {
8788
.diagramUuid(newDiagramLayoutUuid)
8889
.build());
8990

91+
UUID diagramUuid = UUID.randomUUID();
92+
List<String> voltageLevelIds = List.of("vl1", "vl2", "vl3");
93+
Integer depth = 5;
94+
95+
updatedStudyLayout.getDiagramLayoutParams().add(NetworkAreaDiagramLayout.builder()
96+
.diagramUuid(diagramUuid)
97+
.gridLayout(Map.of(
98+
"lg",
99+
DiagramGridLayout.builder()
100+
.w(10)
101+
.h(20)
102+
.x(30)
103+
.y(40)
104+
.build()
105+
))
106+
.voltageLevelIds(voltageLevelIds)
107+
.depth(depth)
108+
.build());
109+
90110
mockMvc.perform(put("/v1/study-layout/{studyLayoutUuid}", existingStudyLayout.getUuid())
91111
.contentType(MediaType.APPLICATION_JSON)
92112
.content(objectMapper.writeValueAsString(updatedStudyLayout)))

0 commit comments

Comments
 (0)