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 :
Et pour finir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 justify = new TreeSet(new MonComparateur());
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:
Erreur :
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>
Toutes les bonnes idées sont les bienvenues.
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)
Partager