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 :

Problème complexe avec héritage et généricité


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Par défaut Problème complexe avec héritage et généricité
    Bonjour à tous,

    Voici l'organisation actuelle de mon modèle métier :



    C'est assez simple.

    Mais je dois maintenant rajouter des interfaces au dessus de Party et Candidate. Voici donc le nouveau modèle métier :



    Et voici le code correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public interface Choix1<T extends Choix2> {
     
    	(...)
     
    	Election getElection();
    	void setElection(Election election);
     
    	Set<T> getEnsembleChoix2();
    	void setEnsembleChoix2(Set<T> ensembleChoix2);
     
    	(...)
    }
    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
    18
    19
    20
    21
    22
    23
     
    public class Party implements Choix1<Candidate> {
     
    	(...)
     
    	private Election election;
    	public Election getElection() {
    		return election;
    	}
    	public void setElection(Election election) {
    		this.election = election;
    	}
     
    	private Set<Candidate> candidates;
    	public Set<Candidate> getEnsembleChoix2() {
    		return candidates;
    	}
    	public void setEnsembleChoix2(Set<Candidate> candidates) {
    		this.candidates = candidates;
    	}
     
    	(...)
    }
    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
     
    public class Election {
     
    	(...)
     
    	private Set<Choix1<? extends Choix2>> ensembleChoix1;
    	public Set<Choix1<? extends Choix2>> getEnsembleChoix1() {
    		return ensembleChoix1;
    	}
    	public void setEnsembleChoix1(Set<Choix1<? extends Choix2>> choix1) {
    		this.ensembleChoix1 = choix1;
    	}
     
    	(...)
    }
    Jusqu'à présent, j'avais cette requête en base :
    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
     
    Query query = getSession().createQuery(
    	" FROM  Election e "
    	+ " LEFT JOIN FETCH e.parties party " 
    	+ " LEFT JOIN FETCH party.os " 
    	+ " LEFT JOIN FETCH party.candidates candidat "					 
    	+ " LEFT JOIN FETCH candidat.electeur "
    	+ " LEFT JOIN FETCH candidat.suppleant "					
    	+ " WHERE e.type.code =:questionTypeCode " 
    	+ "   AND e.questionnaire.code =:questionnaireCode ");
     
    query.setParameter("questionnaireCode", questionnaireCode);
    query.setParameter("questionTypeCode", questionTypeCode);
     
    return (Election) query.uniqueResult();
    Sachant que os est un champ spécifique à Party, qui ne doit pas être connu dans Choix1. Et que electeur et suppleant sont des champs spécifiques à Candidate qui ne doivent pas être connus dans Choix2.

    Ma question est donc la suivante : comment adapter cette requête au nouveau modèle de données ? Sachant que quand elle est appelée, on est sûr que l'implémentation de Choix1 est Party et donc on est sûr que l'implémentation de Choix2 est Candidate.

    J'espère vraiment que vous pourrez m'aider car je m'arrache les cheveux avec ce problème
    Images attachées Images attachées   

Discussions similaires

  1. [Toutes versions] Problème complexe avec les tableaux
    Par vincal1 dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 13/08/2014, 16h14
  2. Héritage complexe avec Annotations ?
    Par Le Singe dans le forum Hibernate
    Réponses: 1
    Dernier message: 16/10/2012, 20h22
  3. Problème avec héritage et instanciation
    Par crisjax dans le forum Windows Forms
    Réponses: 5
    Dernier message: 05/03/2010, 09h46
  4. Problème complexe de dll utilisé avec Access
    Par Sonic dans le forum Bibliothèques
    Réponses: 15
    Dernier message: 23/04/2007, 17h38
  5. Réponses: 19
    Dernier message: 13/07/2006, 13h35

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