IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Comment mapper un héritage


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut Comment mapper un héritage
    Bonjour à tous,

    J'ai un petit problème pour mapper un héritage.
    J'ai les entités 'Resource' et 'Project'. Une 'Resource' peut être affectée à un ou plusieurs 'Project'.

    Mon MCD est le suivant : [gras=table, souligné=pk, italique=fk]
    project(id,...) <-> project_resource(project_id, resource_id) <-> resource(id,...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @Entity
    @Table(name="project")
    public class Project{
       private int id = 0;
       private String name = "";
     
       // ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @Entity
    @Table(name="resource")
    public class Resource{
       private int id = 0;
       private String name = "";
     
       // ...
    }

    Une ressource peut être insérée dans un référentiel général. Aucun lien avec les projets.
    Elle peut également être sélectionnée dans un ou plusieurs projets.

    Je pensais créer la classe "ProjectResource" qui hérite de Resource et qui possède en plus une propriété "Project". Ceci me permet d'avoir le lien entre un projet et une ressource sélectionnée dans ce dernier...
    Mais je ne sais pas comment la mapper.

    Une idée ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    Bon je vois que je n'ai pas de succès...

    Je vais essayer de trouver un autre exemple, peut-être que ça marchera mieux

    Soit le MCD fournit en PJ, je voudrais mapper la classe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public 
    @Entity
    @Table(name="requirement")
    class Requirement {
         private int requirementId;
         private int projectId;
         private int projectVersionId;
         private String name;
         private String description;
         //...
    }
    Quelqu'un peut m'aider pour mapper les propriétés ? Je ne vois pas du tout comment faire
    Images attachées Images attachées  

  3. #3
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Bonjour,
    On voit bien que tu n'as même pas essayé de faire un début de mapping
    As-tu au moins lu un cours/tuto sur le sujet (JPA et/ou Hibernate) ?
    Tu n'as même pas mis les @Id qui sont pourtant pas difficiles à piger
    Je te propose de lire un tuto/cours, de commencer le mapping et de revenir. Si tu bloques on t'aidera Car là tu donnes plutôt l'impression de nous demander à faire le travail pour toi

    Cordialement,
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    Bonjour Paissad,

    Tout d'abord merci pour ton intervention utile.

    Je n'ai pas mappé les propriétés parce que c'est à ce niveau que j'ai besoin d'aide.
    Je précise tout de même que j'ai "pigé" le mapping simple des propriétés (le "@Column" ça va je maîtrise). J'ai même réussi à utiliser le "@ManyToOne" une fois, truc de fou
    Pour les clés primaires composées, j'ai déjà fait. Bien que cette fois-ci ça soit un peu plus complexe puisque les 2 propriétés sont sur 2 tables différentes.

    Si je fais appel à vous c'est parce que je sais pas comment faire pour mapper des propriétés qui sont sur une autre table que celle indiquée sur l'entité, ni même si c'est possible.

Discussions similaires

  1. [D7] Comment faire l'héritage ?
    Par iam dans le forum Langage
    Réponses: 1
    Dernier message: 17/07/2007, 15h21
  2. Comment mapper une colonne de type ENUM ?
    Par KneXtasY dans le forum Hibernate
    Réponses: 15
    Dernier message: 13/06/2007, 17h41
  3. Comment éviter l'héritage multiple ?
    Par strek1 dans le forum Diagrammes de Classes
    Réponses: 11
    Dernier message: 25/08/2006, 11h03
  4. [Analysesi]comment modéliser un héritage ?
    Par guitalca dans le forum Outils
    Réponses: 3
    Dernier message: 14/04/2006, 10h01
  5. Réponses: 6
    Dernier message: 16/02/2006, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo