본문 바로가기

SpringDataJpa2

[SpringDataJpa] QueryDsl 정리 HTML 삽입 미리보기할 수 없는 소스 1. QueryDsl 정의 JPA를 사용하다보면 method query나 jpql로 해결하기 애매한 문제들이 발생한다. 또한 jpql, mybatis처럼 문자열을 통해 쿼리를 작성하다 보면 문법에 의한 에러를 한번쯤은 겪게 되는데 QueryDsl을 사용하면 쿼리를 메소드를 통해 작성할 수 있고 자동완성, 컴파일 단계에서의 타입 체크등을 할 수 있어 더욱 편하게 쿼리를 작성할 수 있게된다. 2. QueryDsl 사용 이유 위에서 'JPA를 사용하다 보면 method query나 jpql로 해결하기 애매한 문제들' 이 발생한다고 하였다. 내가 겪은 문제는 동적 쿼리에 대한 처리였다. 자세한 상황은 아래와 같다. @GetMapping("/board") public Lis.. 2023. 8. 10.
[SpringDataJpa] findAll() n+1 문제 해결 HTML 삽입미리보기할 수 없는 소스 1. findAll() n+1 발생 원인 토의 프로젝트를 하며 게시판 목록 조회를 하던 중 findAll()을 사용하였는데 연관관계인 Member 조회 쿼리가 미친듯이 날라가는 것을 보고 멘붕이 왔다. 내가 알고 있는 배경 지식으로는 도무지 이해가 안 가는 상황이었다. 환경은 다음과 같다. BoardEntity @DynamicInsert // null 값 전달 시 insert 컬럼에서 제외,=> Default 값 적용 가능 @Entity @Getter @Table(name = "board") @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString public cl.. 2023. 8. 9.