All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fi.evolver.basics.spring.job.TaskStatusRepository Maven / Gradle / Ivy

package fi.evolver.basics.spring.job;

import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;

import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import fi.evolver.basics.spring.job.entity.TaskStatus;
import fi.evolver.basics.spring.job.entity.TaskStatus.TaskState;


@Repository
@Transactional(readOnly = true)
public interface TaskStatusRepository extends JpaRepository {

    @Query("SELECT s.state FROM TaskStatus s WHERE s.id = :id")
    TaskState findStateById(@Param("id") long id);

    int deleteByLastUpdatedLessThan(LocalDateTime deleteBefore);

    @Query("SELECT s FROM TaskStatus s WHERE " +
    		"  s.state IN :states AND " +
    		"  s.lastUpdated < :before " +
    		"ORDER BY " +
    		"  s.lastUpdated ASC")
    List findByStatesAndLastUpdatedBefore(Collection states, LocalDateTime before, Pageable pageable);

    @Query("SELECT s FROM TaskStatus s WHERE " +
    		"  s.state IN :states " +
    		"ORDER BY " +
    		"  s.lastUpdated ASC")
    List findByStates(Collection states);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy