- QUERYDSL
정적 타입을 이용해서 SQL등의 쿼리를 생성해주는 프레임 워크
동적인 쿼리 작성이 편리하다
쿼리 작성시 제약 조건 등을 메서드 추출을 통해 재사용할 수 있다.
build.gradle
implementation "com.querydsl:querydsl-jpa"
implementation "com.querydsl:querydsl-core"
implementation "com.querydsl:querydsl-collections"
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// Querydsl 설정부
def generated = 'src/main/generated'
// querydsl QClass 파일 생성 위치를 지정
tasks.withType(JavaCompile) {
options.getGeneratedSourceOutputDirectory().set(file(generated))
}
// java source set 에 querydsl QClass 위치 추가
sourceSets {
main.java.srcDirs += [ generated ]
}
// gradle clean 시에 QClass 디렉토리 삭제
clean {
delete file(generated)
}
설정이 완료 되면 build를 통해 Q클래스가 생성되는지 확인을 한다.
JPAQueryFactory를 Bean 으로 등록하여 프로젝트 전역에서 QueryDSL을 작성할수 있도록 한다.
QuerydslConfig.java
import com.querydsl.jpa.impl.JPAQueryFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Configuration
public class QuerydslConfig {
@PersistenceContext
private EntityManager entityManager;
@Bean
public JPAQueryFactory jpaQueryFactory() {
return new JPAQueryFactory(entityManager);
}
}
'Spring' 카테고리의 다른 글
MVC 패턴 (0) | 2022.12.28 |
---|---|
AOP , DI , IOC (0) | 2022.12.20 |
WebClient (0) | 2022.12.20 |
annotation (0) | 2022.12.20 |
Singleton (0) | 2022.12.20 |
댓글