Bonjour,
Je suis dans une impasse alors que j'utilise les criteria en hibernate et j'espère trouvé de l'aide dans ce forum dont je ne connaissait meme pas l'existence avant!
J'ai une requete sql ici :
Code:
SELECT *
FROM PERSON
WHERE
BIRTH_DATE IS NOT NULL
AND (YEAR(GETDATE()) - YEAR(BIRTH_DATE)) in(6,18,26)
ORDER BY
MONTH(BIRTH_DATE) ASC,
DAY(BIRTH_DATE) ASC
En un mot cette requete me retourne toutes les personnes agés de 6, 18 et 26 ans ordoné par le mois et le jour de leur date de naissance.
La délicatesse ici réside dans le fait que j'utilise les fonction SQL YEAR(), MONTH(), DAY() et GETDATE() et que lorsque j'essaie d'utiliser dans mon order j'ai une erreur disant que :
Code:
org.hibernate.QueryException: could not resolve property: month(birthDate) of: org.domain.Person
Sans compter le fait que je ne vois aucun moyen de retranstrire la clause (YEAR(GETDATE()) - YEAR(BIRTH_DATE)) non plus =/.
Code:
Criteria criteriaBirthDates = this.getSession().createCriteria(Person.class);
criteriaBirthDates.add(Restrictions.isNotNull("birthDate"));
criteriaBirthDates.addOrder(Order.asc("month(birthDate)"));
criteriaBirthDates.addOrder(Order.asc("day(birthDate)"));
return criteriaBirthDates.list();
Est-ce que quelqu'un pourrait m'aider à retranscrire la requete sql en criteria s'il vous plait...?
Merciii