본문 바로가기

JPA

(2)
동적인 쿼리를 만들어줘! QueryDSL 입문기 최종 프로젝트 Triplan을 개발하면서 QueryDSL을 사용하게 되었습니다. QueryDSL을 어떤 상황에서 왜 사용했는지 그래서 뭐가 좋아졌는지 정리해보도록 하겠습니다. 문제 상황 서비스 요구 사항 : 검색 조건(도시, 여행 테마, 검색어)에 맞는 게시글을 조회한다. Triplan 프로젝트에 위와 같은 서비스 요구사항이 있었습니다. 여기서 문제 상황은 도시와 여행 테마, 검색어 모두 조건이 있을 수도 없을 수도 있다는 점 때문에 발생하였습니다. 도시는 전체 또는 특정한 도시(서울, 부산 등등)를 입력받았고, 여행 테마 또한 전체 또는 특정한 테마(액티비티, 맛집 투어 등등)를 입력받았습니다. 도시나 테마만 입력받고 전체 게시글을 조회할 수 있으므로 검색어가 아예 없는 경우도 고려해야 했습니다. 저희..
Spring Data JPA 는 어떻게 interface 만으로도 동작할까? (feat. reflection, proxy) Spring Data JPA를 공부하면서 궁금한 것이 있었습니다. public interface MemberRepository extends JpaRepository { List findAllByName(String name); } 위와 같이 MemberRepository는 인터페이스고, @Repository 애노테이션을 붙여 놓지도 않았는데, 다음과 같은 코드가 가능했습니다. @Service public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository..