728x90
스프링 데이터 JPA
3. 스프링 데이터 Common
본격적인 스프링 데이터 JPA 활용법을 학습하기에 앞서, ORM과 JPA에 대한 이론적인 배경을 학습합니다
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/spring-data-jpa-study/tree/chap03-11-03_common_pageable_sort
해당 포스팅 참고 인프런 강의
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
11. 스프링 데이터 Common: Web 3부: Pageable 과 Sort 매개변수
스프링 MVC HandlerMethodArgumentResolver
스프링 MVC 핸들러 메소드의 매개변수로 받을 수 있는 객체를 확장하고 싶을 때 사용하는 인터페이스
추가로 스프링 데이터 JPA의 Web 지원기능을 사용하면 Pageable과 Sort도 매개변수로 사용할 수 있음
페이징과 정렬 관련 매개변수
page
: 0부터 시작.size
: 기본값 20.sort
: property,property,(ASC|DESC)- 예)
sort=created
,desc&sort=title
(asc가 기본값)
실습
매개변수를 Pageable로 받아서 Page로 리턴하는 API 추가
@RestController
public class PostController {
@Autowired
private PostRepository posts;
@GetMapping("/posts")
public Page<Post> getPosts(Pageable pageable) {
return posts.findAll(pageable);
}
}
테스트 코드
파라메터로 페이정보를 넘기고 응답받는 테스트
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class PostControllerTest {
@Autowired
MockMvc mockMvc;
@Autowired
PostRepository postRepository;
@Test
public void getPosts() throws Exception {
Post post = new Post();
post.setTitle("jpa");
postRepository.save(post);
mockMvc.perform(get("/posts")
.param("page", "0")
.param("size", "10")
.param("sort", "created,desc")
.param("sort", "title"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(jsonPath("$.content[0].title", is("jpa")));
}
}
728x90
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 데이터 JPA] 3-12. 스프링 데이터 Common: 마무리 (0) | 2019.11.23 |
---|---|
[스프링 데이터 JPA] 3-11. 스프링 데이터 Common: Web 4부: HATEOAS (0) | 2019.11.23 |
[스프링 데이터 JPA] 3-11. 스프링 데이터 Common: Web 2부: DomainClassConverter (0) | 2019.11.23 |
[스프링 데이터 JPA] 3-11. 스프링 데이터 Common: Web 1부: 웹 지원 기능 소개 (0) | 2019.11.23 |
[스프링 데이터 JPA] 3-10. 스프링 데이터 Common: QueryDSL (0) | 2019.11.23 |
댓글