Конвертировать H2 SQL-запрос в JPQL - PullRequest
0 голосов
/ 19 февраля 2019

Я использую базу данных H2 в разработке, я написал собственный запрос, который поддерживает только H2.Теперь я хочу преобразовать его в JPQL, чтобы использовать его в производственном режиме.

Внутри запроса я использую функцию DATE_ADD, которая добавляет значение из базы данных к текущей дате, я пытался найти эквивалент для JPQL, но мне это не удалось.

@Modifying
@Transactional
@Query(
        value = "UPDATE ORDER_TABLE O SET O.STATE='CANCELED' WHERE O.STATE='PENDING' AND DATEADD('HOUR',SELECT P.VALUE FROM PARAMETER P WHERE P.NAME ='PENDING_ORDER_TTL' , O.CREATED_AT) < NOW()",
        nativeQuery = true)
void updatePendingOrder();

1 Ответ

0 голосов
/ 19 февраля 2019

Вам необходимо рассчитать дату в Java:

@Query(value = "UPDATE Order o SET o.state='CANCELED'" + 
             " WHERE o.state='PENDING' AND o.createdAt < :cutOff")
@Modifying
//Date/LocalDate/LocalDateTime or whatever
public void updateOrders(@Param("cutOff") Date cutOff) 
...