springData 학습(4)PagingAndSortingRepository 인터페이스 학습
3084 단어 springData
Iterable findAll(Sort sort);및 PagefindAll(Pageable pageable);
Dao 레이어 상속 PagingAndSortingRepository 만들기
1. 페이지 나누기 기능:
테스트 클래스:
@Test
public void testPage() {
//studentPage
Pageable pageable = new PageRequest(0, 5);
Page page = studentPage.findAll(pageable);
System.out.println(" "+page.getTotalPages());
System.out.println(" "+page.getTotalElements());
System.out.println(" "+page.getNumber()+1);
System.out.println(" "+page.getContent());
System.out.println(" "+page.getNumberOfElements());
}
Pageable에 필요한 패키지는 org입니다.springframework.data.domain 아래 pageable
2. 정렬 기능:
PageRequest의 원본 코드를 보기 위해 클릭하면sort로 전송해서 정렬할 수 있는 구조 방법이 있습니다.
public PageRequest(int page, int size, Sort sort) {
super(page, size);
this.sort = sort; }
sort의 원본을 보려면 누르십시오:
Sort.Direction.DESC를 정렬 방법으로 하고 id를 필드로 정렬
@Test
public void testSort() {
Order order = new Order(Sort.Direction.DESC, "id");
Sort sort = new Sort(order);
Pageable pageable = new PageRequest(0, 5, sort);
Page page = studentPage.findAll(pageable);
System.out.println(" "+page.getTotalPages());
System.out.println(" "+page.getTotalElements());
System.out.println(" "+page.getNumber()+1);
System.out.println(" "+page.getContent());
System.out.println(" "+page.getNumberOfElements());
}
만약 우리가 여러 필드로 동시에 정렬해야 한다면?
@Test
public void testSort() {
//Order order = new Order(Sort.Direction.DESC, "id");
String[] array = new String[]{"score","age"};
Sort sort = new Sort(Sort.Direction.ASC, array);
Pageable pageable = new PageRequest(5, 5, sort);
Page page = studentPage.findAll(pageable);
System.out.println(" "+page.getTotalPages());
System.out.println(" "+page.getTotalElements());
System.out.println(" "+page.getNumber()+1);
System.out.println(" "+page.getContent());
System.out.println(" "+page.getNumberOfElements());
}
3. 사용자 지정 방법
만약 우리가 사용자 정의 방법에 대해 페이지를 나누고 싶다면?
dao
@Query("select s from Student s where s.age > :age")
public Page getDataByAge(Pageable pageable ,Integer age);
:
@Test
public void testByAge() {
Pageable pageable = new PageRequest(0, 5);
Page page = studentPage.getDataByAge(pageable, 20);
System.out.println(" "+page.getTotalPages());
System.out.println(" "+page.getTotalElements());
System.out.println(" "+page.getNumber()+1);
System.out.println(" "+page.getContent());
System.out.println(" "+page.getNumberOfElements());
}