Bonjour,
J'ai un petit problème pour mapper mes clef primaire sur une arborescence .
J'ai une classe mère abstraite Ecriture et deux classes fille EcritureDEBrouillard et Ecriture Validée.
Dans la classe EcritureDeBrouillard la clef primaire est NumeroDePreEnregistrement
Et dans EcritureValidee la clef primaire est NumeroEnregistrement
J'ai également un champs NuméroPréEnregistrement, car je veux en garder la trace.
Si mon utilisateur n'a pas noté le numéro d'enregistrement il peut toujours utiliser le numero de préenregistrement
Quand je valide je détruit mon objet Ecriture de brouillard après l'avoir copié dans une EcritureValidee et avoir générer un numéro d'enregistrement, qui à la priorité pour la recherche.
Pour l'instant ma solution me semble un peu bencale.
J'utilise un mapping une table par class, car j'ai peur qu'avec un apping "single table" ça soit ambiguë pour la colonne numeroPreEnregistrement
Dans EcritureDeBrouillard j'ai un champs clef primaire NumeroPreEnregistrement
Et dans EcriturValidee j'ai un champs numeroEnregistrement commme clef primaire
et à nouveau un autre champs numeroPreEnregistrement, en normal cette fois, qui est la copie de l'autre clef primaire de l'autre classe.
J'aimerai bien remonté ma propriété numéroPréEnregistrement dans la classe mère, tout en sachant que c'est une clef primaire seulement pour la classe fille EcritureDEBrouillard
Pour la classe fille EcritureValidee c'est une clef secondaire,
J'ai peur que ce soit un paradox pour Hibernate.
Est-ce que je peux l'annoter "unique not null", comme en SQL pour l'intégrité ?
J'aimerai bien avoir aussi un index pour optimiser la recherche pour cette clef secondaire.
Je ne veux pas de clef concaténée.
Et on a pas droit d'utiliser deux fois @Id.
Comment je peux améliorer ma solution ?
Merci de m'avoir lu ;D
Partager