Я пытаюсь преобразовать следующий SQL-запрос в запрос критериев JPA с помощью CriteriaBuilder и спецификаций.
SELECT *
FROM activity
WHERE date_start + duration * interval '1 minute' > current_timestamp;
date_start — это столбец TIMESTAMP.
duration — это столбец INTEGER, представляющий количество минут.
В типах Java:
SingularAttribute duration
SingularAttribute dateStart
Может ли кто-нибудь помочь мне правильно структурировать этот запрос в соответствии с критериями JPA?
Я пробовал что-то вроде этого:
specification = specification.and((root, query, builder) -> {
Expression durationParam = root.get("duration");
Expression dateStart = root.get("dateStart");
Expression newDate = builder.function(
"DATEADD",
ZonedDateTime.class,
builder.literal("minute"),
durationParam,
dateStart
);
Expression currentDate = builder.function("GETDATE", ZonedDateTime.class);
return builder.lessThan(newDate, currentDate);
});
Подробнее здесь: https://stackoverflow.com/questions/792 ... ere-clause
Как написать запрос критериев JPA с динамической продолжительностью в предложенииwhere? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как написать запрос критериев JPA с динамической продолжительностью в предложенииwhere?
Anonymous » » в форуме JAVA - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-