Я использую базу данных SQL Server и Hibernate. У меня есть следующая проблема, связанная с сохранением дат:
У меня есть следующий код:
String hql = "select user from User user where user.createDate = :date";
Query query = HibernateUtil.getSession().createQuery(hql);
Date date2 = DateHelper.getEndOfDay(new Date());//this returns 2010-07-27 23:59:59.999
query.setParameter("date", date2);
Когда я сравниваю дату 2010-07-27 23:59:59.999
Я получаю результаты с датой: 2010-07-28 00:00:00.0
. Использование setDate () вместо setParameter () возвращает пользователей, чьи сохраненные даты находятся в один и тот же день, что означает, что часы, минуты и т. Д. Отбрасываются.
Гибернация отображает даты в java.util.Date, но в списке результатов все является меткой времени, я думаю, потому что метка времени расширяет java.util.Date.
Что бы вы предложили сделать, чтобы получить хороший результат при сравнении на равенство?