У меня есть таблица с именем "docket_seq" только с 1 столбцом "next_val". Мне нужно сбрасывать значение next_val каждый день в определенное время. Я написал запрос на обновление следующим образом:
package com.xxx.xxx.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.xxx.xxx.model.DocketSequence;
@Repository
public interface DocketSequenceRepository extends JpaRepository<DocketSequence, Long> {
@Modifying
@Query("UPDATE DocketSequence SET next_val='1'")
Long resetDateSequence(@Param("next_val") Long next_val);
}
Я запускаю задание cron следующим образом:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.xxx.xxx.model.DocketSequence;
import com.xxx.xxx.repository.DocketSequenceRepository;
@Component
public class ResetDocketSequence {
@Autowired
DocketSequenceRepository docketSequenceRepository;
DocketSequence docketSequence;
@Scheduled(cron = "0 06 23 * * ?", zone = "Asia/Calcutta")
public void resetSequence() {
docketSequenceRepository.save(docketSequence);
System.out.println("Cron job has run");
}
}
Когда я выполняю код и запускается задание cron, я получаю ошибка: InvalidDataAccessApiUsageException: целевой объект не должен быть нулевым. Я много чего перепробовал, но думаю, что был бы простой способ просто обновить значение столбца в таблице.