MessageRepository.java
package uk.gov.dhsc.htbhf.claimant.repository;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import uk.gov.dhsc.htbhf.claimant.entity.Message;
import uk.gov.dhsc.htbhf.claimant.message.MessageType;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
/**
* JPA repository for Message objects.
*/
public interface MessageRepository extends CrudRepository<Message, UUID> {
@Query("SELECT m "
+ "FROM Message m "
+ "where m.messageType = :messageType and m.processAfter < :olderThan "
+ "order by m.processAfter")
List<Message> findAllMessagesByTypeOlderThan(
@Param("messageType") MessageType messageType,
@Param("olderThan") LocalDateTime olderThan,
Pageable pageable);
default List<Message> findAllMessagesOfTypeWithTimestampBeforeNow(
@Param("messageType") MessageType messageType, Pageable pageable) {
return findAllMessagesByTypeOlderThan(messageType, LocalDateTime.now(), pageable);
}
}