package it.demo.twitterlike.server.repository;
import it.demo.twitterlike.server.domain.Message;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
@RepositoryRestResource(collectionResourceRel = "messages", path = "messages", exported = true)
public interface MessageRepository extends PagingAndSortingRepository<Message, Long>, JpaSpecificationExecutor<Message>{
@Query("select m from #{#entityName} m left join m.author.following following where m.author.login=?1 or following.login=?1")
Page<Message> findFollowedMessages(String login, Pageable pageable);
@Query("select m from #{#entityName} m where m.author.login = ?1")
Page<Message> findMessagesByAuthorLogin(String login, Pageable pageable);
}