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 :

HIbernate set ordonnée


Sujet :

Hibernate Java

  1. #1
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut HIbernate set ordonnée
    Bonjour à tous voila j'ai un probleme sur lequel je bute (jcommence à avoir mal à la tete en plus )


    J'ai un set defini dans mon fichier de mapping. Je recupere cette liste sans probleme. Le seul probleme que j'ai et que je veux la récupérer trié. J'ai donc implémenter ma classe avec l'interface Comparable. Ca ne marchait toujours pas j'ai fait un comparator et j'ai mis le comparator dans l'initialisation de mon TreeSet. Toujours pas bon, j'ai mis le Comparator dans la propriété sort du set dans le mapping mais la ca plante......


    Ce que j'ai en code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <set name="justify" table="TIME" cascade="all" lazy="false" inverse="true" >
    <key column="TSID" />
    <one-to-many class="xxx.Day" />
    </set>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Day implements Serializable, Comparable
     
    ++ les methodes qui vont bien

    Quand le constructeur de la classe qui contient le set j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    justify = new TreeSet(new MonComparateur());
    Et pour finir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class MonComparateur implements Comparator 
     
    ++ les methodes qui vont bien


    Si je modifie mon mapping comme ceci ben ca plante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <set name="justify" table="TIME" cascade="all" lazy="false" inverse="true" sort="XXX.MonComparateur">
    <key column="TSID" />
    <one-to-many class="xxx.Day" />
    </set>
    Erreur :

    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
    15:33:44,303 ERROR XXXDaoImpl:54 - get failed
    java.lang.ClassCastException
    	at org.hibernate.type.SortedSetType.wrap(SortedSetType.java:49)
    	at org.hibernate.event.def.WrapVisitor.processArrayOrNewCollection(WrapVisitor.java:83)
    	at org.hibernate.event.def.WrapVisitor.processCollection(WrapVisitor.java:50)
    	at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:104)
    	at org.hibernate.event.def.WrapVisitor.processValue(WrapVisitor.java:97)
    	at org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:58)
    	at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:104)
    	at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:190)
    	at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:70)
    	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
    	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
    	at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:394)
    	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:367)
    	at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:446)
    	at org.springframework.orm.hibernate3.HibernateTemplate.get(HibernateTemplate.java:440)
    	at XXXDaoImpl.findById(XXXDaoImpl.java:51)
    	at XXXTest.testSearch(XXXTest.java:22)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    Toutes les bonnes idées sont les bienvenues.

  2. #2
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Ra la vache ca se voit que j'avais mal à la tete j'ai mis le comparator sur un autre fichier de mapping, ben bravo...

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 143
    Par défaut
    Lu j'ai la même problématique, mais je ne comprend pas cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class Day implements Serializable, Comparable
    Ta classe comparator ne suffit pas ?

  4. #4
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    Normalement si. Enfin c'est du moins ce que j'avais compris.
    Mais comme ca marchait pas je l'ai rajouté et ca ne marchait pas mieux.

    Ensuite comme je l'ai marquer en faite je spécifié mon comparator sur une autre liste donc forcement ca pouvait pas marché. Et quand j'ai mis sur la bonne liste ca a marché. Donc ensuite je ne l'ai pas enlevé et je ne sais pas si ca marche sans ou non.

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

Discussions similaires

  1. Hibernate Dialect must be explicitly set
    Par cotede2 dans le forum Hibernate
    Réponses: 5
    Dernier message: 08/10/2008, 16h11
  2. [Hibernate] Join fetch et set (one-to-many)
    Par TiMiD dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/10/2007, 02h48
  3. collection SET hibernate
    Par Philcmoi dans le forum Hibernate
    Réponses: 2
    Dernier message: 25/09/2007, 08h46
  4. Hibernate: many-to-many, collections SET vides
    Par tzikin dans le forum Hibernate
    Réponses: 1
    Dernier message: 20/02/2007, 12h24
  5. [Hibernate] Set avec une seule valeur
    Par neuromencien dans le forum Hibernate
    Réponses: 6
    Dernier message: 15/05/2006, 16h49

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