#12 실습
김영한 저 "자바 ORM 표준 JPA 프로그래밍"을 읽고 정리한 내용입니다.
설정 추가
리포지토리 리팩토링
명세 적용
1. 설정 추가
스프링부트로 할거라서 생략
2. 리포지토리 리팩토링
2.1 MemberRepository 리팩토링
2.2 ItemRepository 리팩토링
2.3 OrderRepository 리팩토링
3. 명세 적용 - 어렵다 더 공부
명세로 검색하는 기능을 사용하려면 리포지토리에 JpaSpecificationExecutor를 추가로 상속받아야 한다.
OrderSearch 객체에 자신이 가진 검색조건으로 Specification을 생성하도록 코드를 추가한다.
리포지토리의 검색 코드가 명세를 파라미터로 넘기도록 OrderService를 변경한다.
4. QueryDsl 사용
4.1 QueryDslPredicateExecutor
리포지토리에서 상속받으면 된다.
QueryDslPredicateExecutor 인터페이스를 보면 Page<T> findAll(Predicate predicate, Pageable pageable);이 있어 페이징과 정렬 기능도 사용가능
하지만, join, fetch 를 사용할 수 없는 한계가 있다. (묵시적 조인만 가능) 이때는QueryDslRepositorySupport 사용
4.2 QueryDslRepositorySupport
스프링 데이터 JPA가 제공하는 공통 인터페이스는 직접 구현할 수 없기 때문에 사용자 정의 리포지토리 CustomOrderRepository를 만든다.
CustomOrderRepository를 implements 한다.
QueryDsIRepositorySupport 코드
Last updated