
이번 글에서는 더미 데이터를 넣고 지난 번에 만든 동적 쿼리 조회문을 사용해 회원을 조회하는 API를 만들어보겠습니다.
먼저 더미 데이터를 만들텐데요, @PostConstruct 어노테이션을 이용해 스프링 컨테이너가 띄워질 떄 데이터가 DB에 들어가도록 하겠습니다.
@Profile("local")
@Component
@RequiredArgsConstructor
public class InitMember {
private final InitMemberService initMemberService;
@PostConstruct
private void init() {
initMemberService.init();
}
@Component
static class InitMemberService {
@PersistenceContext
private EntityManager em;
@Transactional
public void init() {
Team teamA = new Team("teamA");
Team teamB = new Team("teamB");
em.persist(teamA);
em.persist(teamB);
for (int i = 0; i < 100; i++) {
Team selectedTeam = i % 2 == 0 ? teamA : teamB;
em.persist(new Member((long) i, "member" + i, i, selectedTeam));
System.out.println("member" + i + " into DB");
}
}
}
}
그리고 사용자를 조회하는 API를 하나 만들어보겠습니다.
@RestController
@RequiredArgsConstructor
public class MemberController {
private final MemberJpaRepository memberJpaRepository;
@GetMapping("/members/v1")
public List<MemberTeamDto> searchMemberV1(MemberSearchCondition condition) {
return memberJpaRepository.search2(condition);
}
}
그리고 포스트맨으로 테스트를 해보겠습니다. 아래 URL로 파라미터와 함께 요청을 보내면

조건대로 회원이 조회되는 것을 확인할 수 있습니다.

단순한 테스트였고 다음 글에서는 MemberRepository를 EntityManager를 사용해 직접 만들지 않고, JpaRepository를 구현해 Querydsl을 사용해보겠습니다.
정말 좋은 정보 감사합니다!