package eu.kielczewski.akanke.common.repository;
import eu.kielczewski.akanke.common.domain.Document;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import javax.transaction.Transactional;
import java.util.List;
public interface DocumentRepository extends JpaRepository<Document, String>, DocumentRepositoryCustom {
@Query("SELECT d FROM Document d WHERE YEAR(d.datePublished) = ?1")
Page<Document> findByYear(int year, Pageable pageable);
@Query("SELECT d FROM Document d WHERE YEAR(d.datePublished) = ?1 AND MONTH(d.datePublished) = ?2")
Page<Document> findByYearAndMonth(int year, int month, Pageable pageable);
Page<Document> findByTags(String tag, Pageable pageable);
Document getByFile(String file);
@Transactional
void deleteByFileStartingWith(String target);
@Query("SELECT d FROM Document d ORDER BY (d.facebookStats.shareCount + d.facebookStats.commentCount) DESC")
List<Document> getMostPopular(Pageable pageable);
}