스프링과 JPA 기반 웹 어플리케이션 개발/8부 검색 및 첫 페이지6 79. N+1 Select 문제 해결 left (outer) join + fetchJoin + distinct로 해결. left (outer) join 첫번째(left) 테이블에 연관 관계가 있는 모든 데이터 가져오기. 연관 데이터가 없으면 null로 채워서라도.. 첫번째 테이블 컬럼만 본다면 중복 row 발생 fetchJoin join 관계의 데이터도 같이 가져온다. distinct 중복 제거 홈 화면에서 스터디를 조회할 때 Study엔티티만을 조회했기 때문에 Study하나당 Study관련 쿼리, Tag관련 쿼리, Zone관련 쿼리, 멤버 관련쿼리 이렇게 여러번 쿼리가 나가게 된다. 이것을 최적화 시키기 위해 findByKeword를 수정하여 Study조회시 Study와 연관된 tags, zones, member를 같이 조회하는 쿼리를 날.. 2020. 5. 17. 78. 검색 기능 구현 GET "/search/study" keyword 입력 받아서 스터디 검색 스터디 제목, 태그 이름, 도시 로컬 이름에 해당하는 키워드를 가지고 있는 공개된 스터디 조회 페이징 없이 정렬 조건 없이 로그인 없어도 사용 가능 보여줄 내용 검색 키워드와 결과 개수, 없으면 없다고 표기 스터디 당 보여줄 정보 스터디 이름 짧은 소개 태그 지역 멤버 수 스터디 공개 일시 keyword에 따른 Study를 불러오기위해 QueryDsl을 활용합니다. 먼저 StudyRepository를 확장하여 StudyRepositoryExtension 인터페이스에 keyword에따른 Study리스트를 불러오는 메소드를 생성합니다. package me.weekbelt.studyolle.modules.study; @Transacti.. 2020. 5. 17. 이전 1 2 다음