Арифметика дат JPA?

Можно ли выполнить арифметику дат с помощью JPA/Hibernate? Например, у меня есть объект с полем java.util.Date, указывающим, когда была создана строка. Можно ли выполнить запрос с использованием JPQL и включить арифметику даты в это поле? Например, могу ли я выполнить COUNT(*) строк, а затем ГРУППИРОВАТЬ ПО месяцу в этом поле? Могу ли я выполнять другие функции, например возвращать только месяц или год из этого поля в запросе?


person Shadowman    schedule 25.05.2010    source источник


Ответы (1)


В HQL есть выражения даты, такие как second(...), minute(...), hour(...), day(...), month(...) и year(...), но в стандартном JPQL таких функций нет.

person Pascal Thivent    schedule 25.05.2010
comment
Можно ли использовать HQL в сочетании с JPQL для получения нужных мне результатов? Будет ли HQL возвращать те же сущности, что и есть, или мне нужно добавить к ним дополнительные аннотации и т. д.? - person Shadowman; 26.05.2010
comment
@Shadowman: Да, и вам не нужны специальные аннотации для их использования. Просто ваш запрос не будет переносимым (нет гарантии, что другой провайдер будет поддерживать эти функции). - person Pascal Thivent; 26.05.2010