У меня есть запрос, который должен работать как на 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 или мне следует работать с профилями в моем случае