Id via UserType [JAVA][HIBERNATE] - Java - Programmation
Marsh Posté le 08-06-2011 à 20:37:48
Bon j'ai rien dit j'ai trouvé la solution ce soir avant de partir... toute conne d'ailleurs : en fait rien n'empêche de déclarer un Id avec un UserType en spécifiant les multiples colonnes, de cette manière :
Code :
|
la classe IdentifierType implémente UserType (je posterai un contenu générique demain)
Bref, je ne sais pas ce qui m'a pris de me dire que ce n'était pas possible de faire simple (et donc pourquoi je ne trouvais pas de solution compliquée )
Marsh Posté le 08-06-2011 à 18:40:16
Bonjour,
J'ai une question concernant la mise en place d'Hibernate pour la persistence des beans d'un projet Java.
Je cherche à définir un Identifiant "complexe" sur ma Classe.
Cet identifiant est lui même une Classe, qui en contient une autre.
J'ai donc 3 classes imbriquées.
Contraintes
1/ Les beans sont gérés par une équipe transverse, je n'ai donc pas la possibilité :
- de les modifier.
- de mettre un oid.
- de refactorer
Modèle Java
Voici grosso modo le modèle que je dois mapper.
Ne me demandez pas pourquoi le modèle est comme ça
C'est historique, actuellement persisté dans certaines applis de la maison via des Daos SQL maintenus à la main... et pour le projet que je démarre, j'ai envie de mettre du Hibernate.
Modèle BDD
Donc concrêtement, tout va tenir dans la même table (quand même meilleur d'un point de vue lisibilité d'avoir les Ids en vif dans la table plutôt que de les externaliser dans une table externe avec une FK).
APP_CODE | VERSION | TYPE_NAME | MESSAGE
=================================================
| | |
Les 3 premières colonnes représentent la PK (ma classe Identifier)
La 3ième colonne correspond à la sous-classe ObjectType (fille de Identifier)
La 4ième colonne est portée directement par MonEntite
MA QUESTION :
Comment mapper ça dans mon .hbm.xml ????
passer par un UserType ?
oui mais pas moyen de mapper ça dans un Id
(ou du moins je n'ai pas trouvé )
Merci d'avance pour votre aide