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.