๐คทโ๏ธQueryDSL ์ด๋?
ํ์ด๋ฒ๋ค์ดํธ ์ฟผ๋ฆฌ ์ธ์ด(HQL: Hibernate Query Language)์ ์ฟผ๋ฆฌ๋ฅผ ํ์ ์ ์์ ํ๊ฒ ์์ฑ ๋ฐ ๊ด๋ฆฌํด์ฃผ๋ ํ๋ ์์ํฌ
์ ์ ํ์ ์ ์ด์ฉํ์ฌ SQL๊ณผ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๊ฒ ํด์ค
์๋ฐ ์ฝ๋๋ก SQL๋ฌธ์ ์์ฑํ ์ ์์ด์ ์ปดํ์ผ ์์ ์ค๋ฅ๋ฅผ ๋ฐ์ํ์ฌ ์๋ชป๋ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์๋ค.
๐ฑ์ฝ๋์ ์ ์ฉํ๊ธฐ - maven
pom.xml ์์กด์ฑ ์ถ๊ฐ
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>5.0.0</version>
</dependency>
querydsl-apt
apt(annotation processing tool)์ด๊ณ @Entity๋ก ํ์๋ ๊ฐ์ฒด๋ค์ Q-type ์ํฐํฐ ํด๋์ค๋ก ์์ฑํด์ค๋ค.
plugin ์ค์
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.1.3</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
์ด ํ๋ฌ๊ทธ์ธ์ ํตํด Q+Entity ์๋ฐ ํด๋์ค๋ฅผ ์๋์ผ๋ก ์์ฑํด์ค
Maven ์ ๋ฐ์ดํธ ๋ฐ ์ปดํ์ผ
1. pom.xml ์ ๋ณ๊ฒฝํด์ค ๋ด์ฉ์ ์ ์ฉํ๊ธฐ ์ํด ctrl+shift+O ๋๋ฌ์ค
2. IDE(IntelliJ) ์ฐ์ธก์ Maven ํด๋ฆญ ํ ์๋ช ์ฃผ๊ธฐ(Lifecycle) -> compile ์ฐํด๋ฆญ ํ ํ๋ก์ ํธ๋ช [compile] ์คํ ์ ํ
โ QEntity ์์ฑ ํ์ธ
generated-sources ์ QEntity๊ฐ ์์ฑ์ด ๋จ
'Spring > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Hibernate๊ฐ DB์ ์ํํ๋ ๋ชจ๋ ์ฟผ๋ฆฌ๋ฌธ ์ฝ์์ ์ถ๋ ฅํ๊ธฐ (0) | 2023.10.12 |
---|---|
[JPA] ์ํ์ฐธ์กฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ (1) | 2023.10.10 |
[JPA] ๊ธฐ๋ณธ ํค ์์ฑ ์ ๋ต (0) | 2023.07.28 |
[JPA] Update๋ฅผ ์ํ ๋ํฐ ์ฒดํน (Dirty Checking) (0) | 2023.07.21 |