Ограничения на дату в критериях гибернации - PullRequest
21 голосов
/ 25 мая 2011

Здравствуйте. Я использую hibernate в моем примере. Для тестирования таблицы bean-компонентов я хочу получить аудит-тест между диапазонами дат с включением верхнего и нижнего пределов. Мой код как показано ниже

Criteria criteria = session.createCriteria(AuditTrail.class);

criteria.add(Restrictions.between("auditDate", sDate, eDate));

Моя начальная дата 25/11/2010. конечная дата - 25/05/2011. Но она дает результат только до 24/05/2011. Не выполняет инклюзивный поиск. Другим способом сделать это. Я использую сервер SQL.

Ответы [ 3 ]

39 голосов
/ 25 мая 2011

Я предполагаю, что ваша AuditDate на самом деле является меткой времени.Если это так, то это нормально, потому что 25.05.2011 означает 25.05.2011 в 0 часов (утром).Так что, конечно, каждая строка, имеющая отметку о времени аудита в дате 25.05.2011, находится после 0 часов утра.

Я бы добавил 1 день к вашей дате окончания и использовал бы auditDate >= sDate and auditDate < eDate.

criteria.add(Restrictions.ge("auditDate", sDate)); 
criteria.add(Restrictions.lt("auditDate", eDate));
2 голосов
/ 26 августа 2016

criteria.add(Restrictions.between("DATE(auditDate)", sDate, eDate)); используйте это для игнорирования времени от даты.

0 голосов
/ 16 сентября 2017
 criteria.add(Restrictions.ge("fromDate", DateUtil.persianToGregorian(currentDate)));
 criteria.add(Restrictions.le("toDate",  DateUtil.persianToGregorian(currentDate)));

 return criteria.list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...