목록분류 전체보기 (572)
오봉이와 함께하는 개발 블로그
스프링 데이터 페이징 활용1 - Querydsl 페이징 연동 스프링 데이터의 Page, Pageable을 활용해보자. 전체 카운트를 한번에 조회하는 단순한 방법 데이터 내용과 전체 카운트를 별도로 조회하는 방법 사용자 정의 인터페이스에 페이징 2가지 추가 public interface MemberRepositoryCustom { List search(MemberSearchCondition condition); Page searchPageSimple(MemberSearchCondition condition, Pageable pageable); Page searchPageComplex(MemberSearchCondition condition, Pageable pageable); } 전체 카운트를 한번에 조회..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cjYWO9/btrMt5hvOoj/ymnnWouzzXsV1tQ4z0wkSk/img.png)
사용자 정의 리포지토리 사용자 정의 리포지토리 사용법 사용자 정의 인터페이스 작성 사용자 정의 인터페이스 구현 스프링 데이터 리포지토리에 사용자 정의 인터페이스 상속 사용자 정의 리포지토리 구성 1. 사용자 정의 인터페이스 작성 public interface MemberRepositoryCustom { List search(MemberSearchCondition condition); } 2. 사용자 정의 인터페이스 구현 public class MemberRepositoryImpl implements MemberRepositoryCustom { private final JPAQueryFactory queryFactory; public MemberRepositoryImpl(EntityManager em) {..
스프링 데이터 JPA 리포지토리로 변경 스프링 데이터 JPA - MemberRepository 생성 public interface MemberRepository extends JpaRepository { List findByUsername(String username); } 스프링 데이터 JPA 테스트 @SpringBootTest @Transactional class MemberRepositoryTest { @Autowired EntityManager em; @Autowired MemberRepository memberRepository; @Test void basicTest() { Member member = new Member("member1", 10); memberRepository.save(mem..
조회 API 컨트롤러 개발 편리한 데이터 확인을 위해 샘플 데이터를 추가하자. 샘플 데이터 추가가 테스트 케이스 실행에 영향을 주지 않도록 다음과 같이 프로파일을 설정하자 프로파일 설정 src/main/resources/application.properties spring.profiles.active=local테스트는 기존 application.properties를 복사해서 다음 경로로 복사하고, 프로파일을 test로 수정 src/test/resources/application.properties spring.profiles.active=test이렇게 분리하면 main 소스코드와 테스트 소스 코드 실행시 프로파일을 분리할 수 있다. 샘플 데이터 추가 @Profile("local") @Component @..
동적 쿼리와 성능 최적화 조회 - Where절 파라미터 사용 Where절에 파라미터를 사용한 예제 public List search(MemberSearchCondition condition) { return queryFactory .select(new QMemberTeamDto( member.id, member.username, member.age, team.id, team.name )) .from(member) .leftJoin(member.team, team) .where( usernameEq(condition.getUsername()), teamNameEq(condition.getTeamName()), ageGoe(condition.getAgeGoe()), ageLoe(condition.getAge..