Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

primaryKey: true sur alias et aliasedPrimaryKey #336

Merged
merged 1 commit into from
Feb 16, 2024
Merged

Conversation

JabX
Copy link
Member

@JabX JabX commented Feb 16, 2024

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... ¯_(ツ)_/¯

@gideruette gideruette merged commit 3608c0d into develop Feb 16, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants