собственный запрос oracle и postgres к HQL - PullRequest
0 голосов
/ 04 мая 2020

У меня есть запрос, который должен работать как на postgres, так и на oracle с использованием данных пружины

Я нашел решение, используя собственные запросы

запрос oracle:

@Query(value = "DELETE FROM LOGGING WHERE SYSTIMESTAMP >  to_char(ts_operation + NUMTODSINTERVAL(:ttl,'SECOND'))", nativeQuery = true)
int purgeLogsByTTL(@Param("ttl") int ttl);

Запрос postgres:

 @Query(value = "DELETE FROM LOGGING WHERE NOW() > (DATE(ts_operation) + :ttl)", nativeQuery = true)
    int purgeLogsByTTL(@Param("ttl") int ttl);

В HQL: он выдал ошибку

 @Query(value = "delete from Logging log where sysdate > log.creation + :ttl")
    int purgeLogsByTTL(@Param("ttl") int ttl);

Вот исключение:

 Error during processing purge with configuration [TTL=60] - Parameter value [60] did not match expected type [java.time.LocalDateTime (n/a)]; nested exception is java.lang.IllegalArgumentException: Parameter value [60] did not match expected type [java.time.LocalDateTime (n/a)]

Можно ли написать оба запроса в одном HQL или мне следует работать с профилями в моем случае

...