Bonjour à tous,
je souhaite créer une recherche par date à l'aide de Criteria sur un objet de type ContactPartenariat. Lors de l'exécution de la requête criteria.list(), il me retourne cependant constamment une erreur :
Voici le code que j'utilise pour passer les dates en paramètres de la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 java.lang.ClassCastException: java.lang.String at org.hibernate.type.TimestampType.toString(TimestampType.java:55) at org.hibernate.type.NullableType.nullSafeToString(NullableType.java:93 ) (...)
Le champ dateDemande est mappé en tant que timestamp auprès de Hibernate, mais le problème est le même avec le type date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 criteria.add(Restrictions.ge("part.dateDemande", sdf.format(searchedPartenariat.getDateDemande()) + " 00:00:00")); GregorianCalendar calendar = new GregorianCalendar(); calendar.setTime(searchedPartenariat.getDateDemande()); calendar.add(Calendar.DATE, 1); criteria.add(Restrictions.lt("part.dateDemande", sdf.format(calendar.getTime()) + " 00:00:00"));
Je précise que je vois la requête SQL qui est générée, et qui fonctionne correctement si je l'exécute manuellement sur MySQL en lui passant les bonnes valeurs. Il s'agit donc d'un problème de transformation de dates.
J'ai vu sur Internet que certains passaient par une fonction perso transformDate, donc je suppose que le format des dates est spécial. Mais lequel ?
Merci d'avance à vous,
MiniMarch
Partager