JPA (4) 썸네일형 리스트형 spring boot jpa 설정 build.gradle 에 아래 dependency 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' // JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // lombok compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' //MySql runtimeOnly 'com.mysql:mysql-connector-j' testImplementation 'org.springframework.boot:spring-boot-star.. [Querydsl] Connection is closed JPA Querydsl 로 대부분의 쿼리가 짜여져 있는 프로젝트를 운영 중 이슈 발생. 이슈 상황 1. 로컬 서버에서 개발을 진행하는 중에 지속적으로 Connection is closed 발생 java.sql.SQLException: Connection is closed at com.zaxxer.hikari.pool.ProxyConnection$ClosedConnection.lambda$getClosedConnection$0(ProxyConnection.java:494) ~[HikariCP-3.4.2.jar!/:na] at com.sun.proxy.$Proxy118.prepareStatement(Unknown Source) ~[na:na] at com.zaxxer.hikari.pool.ProxyConne.. Querydsl Projection 패턴 Querydsl Projection - DB Query 결과에서 데이터 또는 특정 속성의 하위 집합을 지정하고 검색하는 프로세스. - 엔티티와 다른 반환 타입의 경우 사용. 1. @QueryProjection - 불변 객체 선언, 생성자 그대로 사용 가능. - 가장 권장하는 패턴. - ProjectDTO 가 아닌 QProjectDTO 생성 사용. - Q클래스가 생성자의 변수명과 순서가 정확히 일치해 안전하고 편리하게 필요한 값을 바인딩 할 수 있음. package com.-.vo; import com.querydsl.core.annotations.QueryProjection; import lombok.Getter; import lombok.NoArgsConstructor; import java.math... Query DSL 설정 1. build.gradle build.gradle 에 query dsl 설정 추가 buildscript { /** ext : 전역변수 설정 */ ext { springBootVersion = '2.2.6.RELEASE' querydslPluginVersion = '1.0.10' } repositories { jcenter() maven { url "https://plugins.gradle.org/m2/" } // plugin 저장소 } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") classpath("io.spring.gradle:dependency-management-p.. 이전 1 다음