인프런 - 실전! 스프링 데이터 JPA
도메인 클래스 컨버터
- HTTP 파라미터로 넘어온 엔티티의 아이디로 엔티티 객체를 찾아서 바인딩
1. 컨트롤러 작성
2. 접속 확인
3. 컨트롤러 - member2 추가
4. 확인
결론
HTTP 요청은 회원 id 를 받지만, 도메인 클래스 컨버터가 중간에 동작해서 회원 엔티티 객체를 반환
도메인 클래스 컨버터도 리파지토리를 사용해서 엔티티를 찾음
주의: 도메인 클래스 컨버터로 엔티티를 파라미터로 받으면, 이 엔티티는 단순 조회용으로만 사용해야 한다.
(트랜잭션이 없는 범위에서 엔티티를 조회했으므로, 엔티티를 변경해도 DB에 반영되지 않는다.)
페이징과 정렬
예제
1. 컨트롤러 페이징 추가
2. 확인
요청 파라미터
예) /members?page=0&size=3&sort=id,desc&sort=username,desc
page: 현재 페이지, 0부터 시작한다.
size: 한 페이지에 노출할 데이터 건수
sort: 정렬 조건을 정의한다. 예) 정렬 속성,정렬 속성...(ASC | DESC),
정렬 방향을 변경하고 싶으면 sort 파라미터 추가 ( asc 생략 가능 )
기본값 설정
1. 글로벌 설정
application.yml 에 추가
data:
web:
pageable:
default-page-size: 10
max-page-size: 2000
2. 개별설정
접두사
- 페이징 정보가 둘 이상이면 접두사로 구분
- @Qualifier 에 접두사명 추가 "{접두사명}_xxx”
public String list(
@Qualifier("member") Pageable memberPageable,
@Qualifier("order") Pageable orderPageable, ...
페이지 내용을 DTO로 변환하기
- 엔티티를 외부 API에 노출하면 안된다.
'Back-end > Spring Data Jpa' 카테고리의 다른 글
나머지 기능들 - Specifications (명세) (0) | 2021.06.08 |
---|---|
스프링 데이터 JPA 분석 (0) | 2021.06.08 |
확장 기능 - Auditing (0) | 2021.06.07 |
확장 기능 - 사용자 정의 리포지토리 구현 (★실무) (0) | 2021.06.07 |
쿼리 메소드 기능 - JPA Hint & Lock (0) | 2021.06.07 |