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 :

Mapper une classe qui ETEND un TreeSet


Sujet :

Hibernate Java

  1. #1
    Invité
    Invité(e)
    Par défaut Mapper une classe qui ETEND un TreeSet
    Bonjour,

    J'ai une classe "HistoryList" qui contient des objets "HistoryEvent". Cette "HistoryList" est contenue dans un autre objet et bien sur je voudrais mapper tout cela. Je cxraisn que ce ne soit pas possible mais avant de repnser la chose je préfère m'adresse à des experts ..

    Je vous donne le code de cette HistoryList :
    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
    24
    25
    26
    27
    28
    29
    30
    public class HistoryList<T extends HistoryEvent> extends TreeSet<HistoryEvent> {
     
    	/** Serial version UID */
    	private static final long serialVersionUID = 781100274955435043L;
     
     
    	public HistoryList() {
    	}
     
        public HistoryEvent getLastEvent() {
           /* if (this.size()<=0)
                return null;
            return this.get(this.size()-1);*/
        	return last();
        }
     
     
        // ~ Internal classes ------------------------------------------------------
     
        @SuppressWarnings("unused")
    	private class InternalDateComparator implements Comparator<HistoryEvent> {
     
        	@Override
        	public int compare(HistoryEvent evt1, HistoryEvent evt2) {
        		return evt1.getDate().compareTo(evt2.getDate());
        	}
     
        }
     
    }

    J'espère que vous pourrez m'aider.

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 958
    Points : 4 387
    Points
    4 387
    Par défaut
    Citation Envoyé par Blaise1 Voir le message
    Bonjour,

    J'ai une classe "HistoryList" qui contient des objets "HistoryEvent". Cette "HistoryList" est contenue dans un autre objet et bien sur je voudrais mapper tout cela. Je cxraisn que ce ne soit pas possible mais avant de repnser la chose je préfère m'adresse à des experts ..

    Je vous donne le code de cette HistoryList :
    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
    24
    25
    26
    27
    28
    29
    30
    public class HistoryList<T extends HistoryEvent> extends TreeSet<HistoryEvent> {
     
    	/** Serial version UID */
    	private static final long serialVersionUID = 781100274955435043L;
     
     
    	public HistoryList() {
    	}
     
        public HistoryEvent getLastEvent() {
           /* if (this.size()<=0)
                return null;
            return this.get(this.size()-1);*/
        	return last();
        }
     
     
        // ~ Internal classes ------------------------------------------------------
     
        @SuppressWarnings("unused")
    	private class InternalDateComparator implements Comparator<HistoryEvent> {
     
        	@Override
        	public int compare(HistoryEvent evt1, HistoryEvent evt2) {
        		return evt1.getDate().compareTo(evt2.getDate());
        	}
     
        }
     
    }

    J'espère que vous pourrez m'aider.

    Merci
    il n'y a pas assez d'info pour pour répondre de manière définitive…

    si HistoryList est en fait un wrapper sur une collection vous ne pourrez pas utiliser directement les mappings habituels de relation one-to-many et C°… :

    si une classe Container contient un attribut de type HistoryList celui-ci devra être mappé en one-to-one avec Container et c'est la collection wrappée dans HistoryList qui sera l'objet d'un mapping one-to-many.

    [Container] 1<->1 [HistoryList] 1<->N [HistoryEvent]

    Autrement dit le fait d'utiliser un wrapper vous obligera à avoir un niveau de table supplémentaire mais cela peut être justifié par ailleurs…

    mais attention aux problèmes si vous voulez une table HistoryEvent différente pour chaque type de Container que vous avez dans votre application… un tel mapping implique que tous les HistoryEvent de tous les types de Container de votre application sont dans la même table…


    si HistoryList est une sous-classe d'une collection standard un mapping One-to-many à partir de Container pourrait fonctionner quoique je n'ai pas encore vu d'exemples … et a priori je me méfierais des conséquences liées au proxying, lazy loading, cascading, marshaling, … prévoyez tous les cas dans vos UnitTests…

  3. #3
    Invité
    Invité(e)
    Par défaut
    Mon problème c'est résolu de lui-même sans aucuns rapports avec Hibernate.

    A l'orignie cette "HistoryList" avait été créée pour :
    - n'accepter que des HistoryEvents. Mais aujour'dhui les generics résolvent ce problème
    - pouvoir aisément obtenir le derniere evènement. Je ne sias pas pouqruoi cela avait été fait car l'inetrface SortedSet qui est un enfant direct de Collection offre les méthodes "first()" et "last()".

    --> Je peux donc déprécier "HistoryList" et le remplacer dans mon code par un SortedSet rélaise via un TreeSet. Super !

    Merci beaucoup JeitEmgie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Hibernate] Mapper une classe association
    Par mauvais_karma dans le forum Hibernate
    Réponses: 16
    Dernier message: 25/01/2006, 12h34
  2. Réponses: 10
    Dernier message: 10/01/2006, 14h14
  3. Réponses: 7
    Dernier message: 25/03/2005, 14h05
  4. Réponses: 14
    Dernier message: 14/03/2005, 09h16
  5. destruction d'une classe qui herite de CDialog
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 03/02/2004, 17h39

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