
Envoyé par
cinemania
la seule solution "possible" est d'instancier l'entité et de la persister, pour qu'elle dispose d'une clé primaire... ensuite par des updates, tu change ses propriétés...
il va donc éventuellement falloir soit que tu autorise null sur tous les champs, soit que tu trouve une autre solution, ou que tu n'utilise pas une clé auto-incrémenté sur cette table mais sur une autre qui va te servir de générateur de clé.
mais à quoi bon disposer dans ton formulaire de création de l'identifiant ?
tu n'affiche l'identifiant qu'une fois que l'élément a été persisté au moins une fois... je vois pas le problème.
Mais après tout dépend des technologies engagées... que tu travail avec un ORM ou que tu te tappe tout à la mano, normalement, toutes les entités de tes tables donnent lieux à des instances dans ton application, des instances d'objets qui reprennent grosso-modo les propriétés de la table associée...
de là que tu fasse référence à un objet quand tu créé les actions du plan d'action, avant que celui-ci ne soit créé, ne pose aucun problème... ni pour les actions ni pour les plans, tu défini dans les instances les clés et clés étrangères une fois que tu as persisté le plan d'action, puis persiste les actions dans lesquelles tu as propagés la clé fraichement obtenue.
Cela n'a rien de compliqué, suffit juste de prendre le problème autrement en considération, lors de la conception.
En effet dans ton monde objet, dans ton application ce qui compte avant tout c'est la référence vers une instance données, en SQL ce quii compte c'est la clé primaire, mais vu que tu créé les entités dans ton application, tu manipule donc des références vers des instances... donc tu peux propager les clés au moment de créer la persistance... au moins avec ce principe si la personne annule tout cela évite de supprimer de la base des entrées déjà crées pour des prunes.
Partager