Bonjour,
Dans le cadre de mon laboratoire de Java, on m'a donné un projet de moteur de jeu et j'ai fait l'analyse du projet mais je ne vois pas clairement comment mapper mon schéma via Hibernate.
Pour les entités de jeu du moteur, je dois, plutôt que faire une table par entité, faire une table pour toutes les entités, une pour chaque attribut de chaque entité et une troisième table pour les valeurs.
J'ai cherché dans la documentation officielle de Hibernate, et je ne vois toujours pas comment mapper ça proprement malgré quelques piste (entre autres '@SecondaryTable').
J'ai réaliser un exemple des tables via Excel, pour vous permettre de visualiser le problème.
Infos sur l'exemple :
- tous les champs soulignés sont des clés primaires
- tous les champs précédé d'un '#' sont des clés étrangères
- les différents types d'entités et de valeurs sont fixé à l'avance
- une partie des attributs est fixé à l'avance et l'autre partie sera choisie par l'utilisateur (l'utilisateur doit pouvoir ajouter des informations aux entités)
- un attribut peut avoir plusieurs valeurs
J'ai dû passer de la version basique à la version améliorée pour certaines raisons que je ne peux expliquer sans expliquer tout mon projet.
C'est bien sûr pour mapper la version améliorée que j'ai du mal. J'arrive à mapper les trois tables, mais comment faire pour avoir les POJO de chaque type d'entité ?
Mon but est d'arriver à ceci :
J'ai choisi de mapper mes POJO avec les annotations (je ne sais pas si tout ce qui est faisable via les fichiers xml est faisable via les annotations, donc je préfère le préciser).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class entity1 extends entity { public type getAttribut1() {} public type getAttribut2() {} public type getAttribut3() {} } public class entity2 extends entity { public type getAttribut4() {} public type getAttribut5() {} public type getAttribut6() {} } public class entity3 extends entity { public type getAttribut7() {} public type getAttribut8() {} public type getAttribut9() {} }
J'espère que vous avez compris ce que je veux faire, car c'est pas si simple de donner un max d'infos tout en simplifiant et réduisant le problème.
Merci de votre attention.
Tux.
Partager