편리한 데이터 확인을 위해 샘플 데이터를 추가하자.
샘플 데이터 추가가 테스트 케이스 실행에 영향을 주지 않도록 다음과 같이 프로파일을 설정하자
프로파일 설정
src/main/resources/application.yml
spring:
profiles:
active: local
테스트는 기존 application.yml을 복사해서 다음 경로로 복사하고, 프로파일을 test로 수정하자
spring:
profiles:
active: test
이렇게 분리하면 main 소스코드와 테스트 소스 코드 실행시 프로파일을 분리할 수 있다.
샘플 데이터 추가
@Profile("local")
@Component
@RequiredArgsConstructor
public class InitMember {
private final InitMemberService initMemberService;
@PostConstruct
public 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("member" + i, i, selectedTeam));
}
}
}
}
조회 컨트롤러
@RestController
@RequiredArgsConstructor
public class MemberController {
private final MemberJpaRepository memberJpaRepository;
@GetMapping("/v1/members")
public List<MemberTeamDto> searchMemberV1(MemberSearchCondition condition) {
return memberJpaRepository.search(condition);
}
}
예제 실행(postman)
http://localhost:8080/v1/members?teamName=teamB&ageGoe=31&ageLoe=35
출처 : 김영한 JPA 스프링 데이터 강의
'Querydsl' 카테고리의 다른 글
사용자 정의 리포지토리 (0) | 2022.07.26 |
---|---|
실무 활용 - 스프링 데이터 JPA와 Querydsl (0) | 2022.07.26 |
동적 쿼리와 성능 최적화 조회 - Where절 파라미터 사용 (0) | 2022.07.26 |
동적 쿼리와 성능 최적화 조회 - Builder 사용 (0) | 2022.07.26 |
실무 활용 - 순수 JPA와 Querydsl (0) | 2022.07.26 |