@Table(name = "EMPLOYEES_VIEW")
@Entity
public class EmployeeView {
@Id
@Column(name = "EMPLOYEEID")
private Long employeeId;
@Column(name = "ADDRESS")
private String address;
@Column(name = "FIRST_NAME")
private String firstName;
@Column(name = "LAST_NAME")
private String lastName;
@Column(name = "SALARY")
private Double salary;
public interface EmployeeViewPaginationRepository extends PagingAndSortingRepository<EmployeeView, Long> {
List<EmployeeView> findAllBySalary(Double Salary, Pageable pageable);
}
/**
*
* @param salary value of field that is done an query
* @param numberPage start number of the page to get the requested list from
* @param amountPage the number of pages received per request
* @return
*/
@Override
public Iterable<EmployeeViewDto> getAllBySalary(Double salary, Integer numberPage, Integer amountPage) {
PageRequest pageRequest = PageRequest.of(numberPage, amountPage);
Iterable<EmployeeView> employeeViews = findEmployeesFromViewPagination(salary, pageRequest);
Iterable<EmployeeViewDto> listDto = transformViewPagToListDto(employeeViews);
return listDto;
}
private Iterable<EmployeeView> findEmployeesFromViewPagination(Double salary, Pageable pageable){
Iterable<EmployeeView> allEmployees = this.paginationRepository.findAllBySalary(salary, pageable);
return allEmployees;
}
Я передаю эти параметры для нумерации страниц:
Целое числоPage = 0;
Целое числоPage = 5;
Я получаю результат.
Я передаю эти параметры для нумерации страниц:
Целое числоPage = 1;
Integer amountPage = 5;
Я получаю 0 записей.
Я пробовал это.
select
*
from
( select
row_.*,
rownum rownum_
from
( select
employeevi0_.employeeid as employeeid1_5_,
employeevi0_.address as address2_5_,
employeevi0_.first_name as first_name3_5_,
employeevi0_.last_name as last_name4_5_,
employeevi0_.salary as salary5_5_
from
employees_view employeevi0_
where
employeevi0_.salary=800.00 ) row_
where
rownum <= 10
)
where
rownum_ > 2;
У меня есть таблица с 10 записями.
Кто знает, почему это происходит?
Решение.
Я понял.
Когда мы указываем общее количество страниц для навигации мы считаем указанное число от начального значения.
Например.
0, 4 - мы получим страницы с 1-го по 4-й.
1, 4 - мы получим страницы с 5 по 9.
То есть, если у нас будет 10 страниц, в этом В этом случае мы увидим 3 страницы.
Итак, первым параметром является номер страницы ...
Iterable<EmployeeViewDto> getAllBySalaryFromRefCursor(Integer numberPage, Integer amountPage);