순수 JPA 리포지토리와 Querydsl
순수 JPA 리포지토리
Code
순수 JPA 테스트코드
Code
Querydsl사용
순수 JPA 리포지토리 - Querydsl 추가
Code
Querydsl 테스트코드 추가
Code
JPAQueryFactory 스프링 빈 등록
JPAQueryFactory 를 스프링 빈으로 등록해서 주입받아 사용해도 된다.
@Bean
JPAQueryFactory jpaQueryFactory(EntityManager em){
return new JPAQUeryFactory(em);
}
Java
복사
참고: 동시성 문제는 걱정하지 않아도 된다.
여기서 스프링이 주입해주는 엔티티매니저(em)는 실제 동작 시점에 진짜 엔티티 매니저를 찾아주는 프록시용 가짜 엔티티 매니저이다.
이 가자 엔티티 매니저는 실제 사용 시점에 트랜잭션 단위로 실제 엔티티 매니저(영속성 컨텍스트)를 할당해준다.
동적 쿼리와 성능 최적화 조회 - Builder 사용
MemberTeamDto - 조회 최적화용 DTO 추가
Code
참고: 위 코드처럼 @QueryProjection 을 사용하면 DTO가 Querydsl을 의존하게 되는데, 이게 싫다면
Projection.bean(), fields(), constructor()를 사용하면 된다.
Condition DTO를 이용해서 검색을 구현해보도록 하자.
MemberSearchCondition
Code
Builder를 사용한 예제 - searchByBuilder 메서드 작성
Code
Builder를 사용한 예제 - 테스트 코드 작성
Code
동적 쿼리와 성능 최적화 조회 - Where절 파라미터 사용
Where 절에 파라미터를 사용한 예제
Code