Je ne me souviens pas pourquoi, mais pour les dates, Hibernate vous oblige à utiliser cette construction :
query.setParameter("frmdate", frmDate, Hibernate.DATE);
query.setParameter("todate", toDate, Hibernate.DATE);
Je ne l'utilise qu'avec des objets Calendar et avec Hibernate.CALENDAR, vous devrez donc peut-être adapter le type exact.