У меня есть приложение, которое использует быть в спящем режиме (аннотации)/mysql комбинация для ORM. В том приложении я получил объект с Полем даты. Я ищу способ выбрать в ту дату в диапазоне времени (так hh:mm:ss
без части даты).
В MySQL существует функция TIME(expression)
это может извлечь часть времени и использование, что в, где пункт, но это, кажется, не доступно в, в спящем режиме, не переключаясь на собственные запросы. Существует ли опция в, в спящем режиме, чтобы сделать это, или действительно ли я должен циклично выполниться через результаты в Java и сделать сравнение там? Это было бы намного медленнее как решение для MySQL, так как это не будет использовать индексы так или иначе?
Следующие функции доступны в HQL, возможно, Вы могли использовать их:
second(...), minute(...), hour(...), day(...), month(...), year(...)
Добавьте выражение как ограничение SQL вместо того, чтобы иметь полный собственный запрос. Я не знаю MySQL а именно, но воображаю что-то вроде этого:
Criteria criteria = session.createCriteria(MyTable.class);
criteria.add(
Expression.sql(
"TIME( {alias}.my_date, 'hh:mm:ss') >= :1",
dateRangeMin,
new StringType()
)
);