Nie pamiętam dlaczego, ale w przypadku dat Hibernate wymaga użycia następującej konstrukcji:
query.setParameter("frmdate", frmDate, Hibernate.DATE);
query.setParameter("todate", toDate, Hibernate.DATE);
Używam go tylko z obiektami Kalendarza i Hibernate.CALENDAR, więc może być konieczne dostosowanie dokładnego typu.