Un alias n'est plus une clé primaire implicite dès lors que la propriété originale est une clé primaire et que l'alias n'a pas de préfixe et de suffixe : un alias sera désormais toujours primaryKey: false par défaut, et pourra être mis à primaryKey: true comme les propriétés classiques et d'association.
En interne, cette ancienne définition est toujours présente dans la propriété AliasedPrimaryKey pour garder les comportements existants sur dans les générateurs qui ne sont pas vraiment faisables autrement sans gros breaking change (en particulier le fait que les clés primaires sont générés avec isRequired: false en JS). Elle est aussi utilisée pour continuer à pouvoir faire des mappings entre associations et compositions.
Ce changement va permettre :
D'avoir des alias en PK (pour une classe persistée)
D'avoir required: false sur un alias de PK sans préfixe ni suffixe (c'est en théorie un "breaking change" mais en même temps c'était quelque chose qui devait marcher et qui ne marchait pas)
Les DTOs n'ayant plus de PK côté topmodel impliquent aussi quelques choses qui ne vont plus marcher genre faire des associations sur des DTOs sans préciser de propriété cible, mais bon en même temps... ¯_(ツ)_/¯
Un alias n'est plus une clé primaire implicite dès lors que la propriété originale est une clé primaire et que l'alias n'a pas de préfixe et de suffixe : un alias sera désormais toujours
primaryKey: false
par défaut, et pourra être mis àprimaryKey: true
comme les propriétés classiques et d'association.En interne, cette ancienne définition est toujours présente dans la propriété
AliasedPrimaryKey
pour garder les comportements existants sur dans les générateurs qui ne sont pas vraiment faisables autrement sans gros breaking change (en particulier le fait que les clés primaires sont générés avecisRequired: false
en JS). Elle est aussi utilisée pour continuer à pouvoir faire des mappings entre associations et compositions.Ce changement va permettre :
required: false
sur un alias de PK sans préfixe ni suffixe (c'est en théorie un "breaking change" mais en même temps c'était quelque chose qui devait marcher et qui ne marchait pas)Les DTOs n'ayant plus de PK côté topmodel impliquent aussi quelques choses qui ne vont plus marcher genre faire des associations sur des DTOs sans préciser de propriété cible, mais bon en même temps... ¯_(ツ)_/¯