springData 학습(4)PagingAndSortingRepository 인터페이스 학습

3084 단어 springData
먼저 PagingAndSortingRepository 인터페이스의 방법을 살펴보겠습니다. 두 가지 방법입니다.
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());
	}

좋은 웹페이지 즐겨찾기