88
99import jakarta .persistence .*;
1010import lombok .*;
11+ import org .gridsuite .modification .dto .LimitsPropertyInfos ;
1112import org .gridsuite .modification .dto .OperationalLimitsGroupInfos ;
1213import org .gridsuite .modification .server .entities .equipment .modification .LimitsPropertyEntity ;
1314import org .springframework .util .CollectionUtils ;
1415
16+ import java .util .ArrayList ;
1517import java .util .List ;
1618import java .util .Objects ;
1719import java .util .UUID ;
@@ -42,8 +44,8 @@ public class OperationalLimitsGroupEntity {
4244 @ OneToMany (cascade = CascadeType .ALL , orphanRemoval = true )
4345 @ JoinTable (
4446 name = "operational_limits_group_properties" ,
45- joinColumns = @ JoinColumn (name = "op_limits_group_id" ), foreignKey = @ ForeignKey (name = "operationalLimitsGroups_id_fk" ),
46- inverseJoinColumns = @ JoinColumn (name = "limits_property_id" ), inverseForeignKey = @ ForeignKey (name = "limits_property_fk" ))
47+ joinColumns = @ JoinColumn (name = "op_limits_group_id" , referencedColumnName = "uuid" ), foreignKey = @ ForeignKey (name = "operationalLimitsGroups_id_fk" ),
48+ inverseJoinColumns = @ JoinColumn (name = "limits_property_id" , referencedColumnName = "id" ), inverseForeignKey = @ ForeignKey (name = "limits_property_fk" ))
4749 private List <LimitsPropertyEntity > limitsProperties ;
4850
4951 @ OneToOne (cascade = CascadeType .ALL , orphanRemoval = true , fetch = FetchType .LAZY )
@@ -54,6 +56,14 @@ public class OperationalLimitsGroupEntity {
5456 ))
5557 private CurrentLimitsEntity currentLimits ;
5658
59+ private static List <LimitsPropertyEntity > toLimitPropertyEntities (List <LimitsPropertyInfos > properties ) {
60+ List <LimitsPropertyEntity > result = new ArrayList <>();
61+ if (!CollectionUtils .isEmpty (properties )) {
62+ result = properties .stream ().map (LimitsPropertyEntity ::fromLimitsPropertyInfos ).toList ();
63+ }
64+ return result ;
65+ }
66+
5767 public static List <OperationalLimitsGroupEntity > toOperationalLimitsGroupsEntities (@ NonNull List <OperationalLimitsGroupInfos > limitsGroups ) {
5868 return limitsGroups .stream ()
5969 .filter (Objects ::nonNull )
@@ -62,7 +72,7 @@ public static List<OperationalLimitsGroupEntity> toOperationalLimitsGroupsEntiti
6272 null ,
6373 limitsGroup .getId (),
6474 limitsGroup .getApplicability (),
65- limitsGroup .getLimitsPropertiesInfos (). stream (). map ( LimitsPropertyEntity :: fromLimitsPropertyInfos ). toList ( ),
75+ toLimitPropertyEntities ( limitsGroup .getLimitsProperties () ),
6676 new CurrentLimitsEntity (limitsGroup .getCurrentLimits ())
6777 )
6878 )
@@ -77,7 +87,7 @@ public static List<OperationalLimitsGroupInfos> fromOperationalLimitsGroupsEntit
7787 .id (limitsGroupEntity .getId ())
7888 .applicability (limitsGroupEntity .getApplicability ())
7989 .currentLimits (limitsGroupEntity .getCurrentLimits ().toCurrentLimitsInfos ())
80- .limitsPropertiesInfos (limitsGroupEntity .getLimitsProperties ()
90+ .limitsProperties (limitsGroupEntity .getLimitsProperties ()
8191 .stream ().map (LimitsPropertyEntity ::toCurrentLimitsInfos ).toList ())
8292 .build ()
8393 )
0 commit comments