Parametr o nazwie [to]
nie istnieje, ponieważ umieściłeś :to
między pojedynczymi cudzysłowami. Użyj :to
zamiast ':to'
.
Biorąc to pod uwagę, to i tak nie zadziała. Miałem naprawdę podobny problem i po kilku godzinach w końcu znalazłem rozwiązanie, które przedstawiam w odpowiedzi tutaj
. Z jakiegoś powodu, kiedy interval
wchodzi w grę wstrzykiwanie parametrów nie działa tak, jak można by się spodziewać.
Biorąc pod uwagę wnioski z powyższego linku - uważam, że to powinno działać:
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Modifying
@Query(value = "UPDATE transactionlog SET transactionstatus= :ps,
startedat = CURRENT_TIMESTAMP,
readytoprocessat= (CURRENT_TIMESTAMP + (( :to ) || 'second')\\:\\:interval)
WHERE logid IN (:li) ",nativeQuery = true)
public Integer reserve(@Param("ps") short processingStatus, @Param("li") List<Integer> logIdList, @Param("to") int timeOut);