Which of the following methods, correctly provide pagination?
@Query(value = "SELECT * FROM purchases WHERE transaction_year >= :year",
countQuery = "SELECT COUNT(*) FROM purchases",
nativeQuery=true)
Page<Purchase> findByYear(int year, Pageable page);
@Query("SELECT p FROM Purchase p OFFSET :page")
Page<Purchase> findAll(Pageable page);
@Query("SELECT p FROM Purchase p WHERE p.storeName = :storeName")
Page<Purchase> findByStoreName(String storeName, Pageable page);
@Query(value = "SELECT * FROM purchases WHERE company = :company"
+ " LIMIT :size OFFSET :page * :size",
nativeQuery=true)
List<Purchase> findByCompany(String company, int size, int page);
@Query(value = "SELECT * FROM purchases WHERE orderId = :orderId",
countQuery = "SELECT COUNT(*) FROM purchases WHERE orderId = :orderId",
nativeQuery=true
)
Page<Purchase> findByOrderId(long orderId, Pageable page);