получить записи с датой приема в диапазоне

1

С помощью Hibernate я хочу получить идентификатор клиента из таблицы контрактов, где дата приема находится в диапазоне (между двумя датами).

List clients =  session.createQuery("from Contract contract where contrat.datesouscription BETWEEN "+ begindate+" and "+endate).list();

мой запрос не работает. благодаря

Теги:
hibernate

2 ответа

1
Лучший ответ

Вам нужны цитаты вокруг ваших дат

List clients =  session.createQuery("from Contract contract where contrat.datesouscription BETWEEN '"+begindate+"' and '"+endate+"'").list();
1

Попробуйте этот запрос с параметрами, так как запросы по конкатенации не рекомендуется по соображениям безопасности (открывает код для SQL-инъекций):

String hql = "from Contract contract where contrat.datesouscription BETWEEN :beginDate and :endDate";
List result = session.createQuery(hql)
.setParameter("beginDate", begindate)
.setParameter("endDate", enddate)
.list();

Взгляните на эти примеры.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню