Как написать запрос критериев JPA с динамической продолжительностью в предложенииwhere?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как написать запрос критериев JPA с динамической продолжительностью в предложенииwhere?

Сообщение Anonymous »

Я пытаюсь преобразовать следующий 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»