Spring/[P] AI 챗봇 기반 맞춤형 레시피 서비스

[SpringBoot/Querydsl] QnA 대댓글 (1) Querydsl 프로젝트 설정

alsruds 2024. 3. 1. 18:55

 

 

 

스프링부트 프로젝트에서 Querydsl - jpa 을 사용할 수 있도록 프로젝트 설정을 해봅시다 ~

 


 

[ SpringBoot 프로젝트 설정하기 ]

 

0. Querydsl 공식 문서

🏠 http://querydsl.com/

 

Querydsl - Unified Queries for Java

Unified Queries for Java. Querydsl is compact, safe and easy to learn. <!-- Querydsl Unified Queries for Java Querydsl provides a unified querying layer for multiple backends in Java. Compared to the alternatives Querydsl is more compact, safer and easier

querydsl.com

 

📜 http://querydsl.com/static/querydsl/4.4.0/reference/html_single/

 

Querydsl Reference Guide

The Java 6 APT annotation processing functionality is used in Querydsl for code generation in the JPA, JDO and Mongodb modules. This section describes various configuration options for the code generation and an alternative to APT usage. 3.3.1. Path initi

querydsl.com

 

🐈‍⬛ https://github.com/querydsl/querydsl

 

GitHub - querydsl/querydsl: Unified Queries for Java

Unified Queries for Java. Contribute to querydsl/querydsl development by creating an account on GitHub.

github.com

 

1. Build.gradle

...

dependencies {
	...

	// querydsl
	implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
	implementation 'com.querydsl:querydsl-apt'
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
	annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
	annotationProcessor 'jakarta.annotation:jakarta.annotation-api'
}

...

// querydsl
def querydslSrcDir = 'src/main/generated'
sourceSets {
	main {
		java {
			srcDirs += [ querydslSrcDir ]
		}
	}
}

compileJava {
	options.compilerArgs << '-Aquerydsl.generatedAnnotationClass=javax.annotation.Generated'
}

tasks.withType(JavaCompile) {
	options.generatedSourceOutputDirectory = file(querydslSrcDir)
}

clean {
	delete file(querydslSrcDir)
}

 

2. Configuration

@Configuration
public class QuerydslConfig {

    @PersistenceContext
    private EntityManager entityManager;

    @Bean
    public JPAQueryFactory jpaQueryFactory() {
        return new JPAQueryFactory(entityManager);
    }
}

 

💬 준비 완료 !