Tham số có tên [to]
không tồn tại vì bạn đặt :to
giữa các dấu nháy đơn. Sử dụng :to
thay vì ':to'
.
Điều đó đang được nói, điều này sẽ không hoạt động dù sao. Tôi đã đối mặt với vấn đề thực sự tương tự và sau vài giờ cuối cùng đã tìm thấy giải pháp mà tôi trình bày trong câu trả lời tại đây
. Vì lý do nào đó, khi interval
đi vào hoạt động việc tiêm các thông số không hoạt động như bạn mong đợi.
Xem xét kết luận từ liên kết ở trên - tôi tin rằng điều này sẽ hoạt động:
@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);