QueryDSL์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋นŒ๋“œ ๊ณผ์ • ์ค‘์— ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ธ๋ฐ ์ •๋ฆฌํ•ด์„œ ๋‹ค์Œ์—๋Š” ๋ฐ”๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ์ƒํ™ฉ

QueryDSL์„ ์‚ฌ์šฉํ•˜์—ฌ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ Qํƒ€์ž… ํด๋ž˜์Šค ํŒŒ์ผ๋“ค์„ ์ž๋™ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์—์„œ, ์ด๋ฏธ ์ƒ์„ฑ๋œ Qํƒ€์ž… ํด๋ž˜์Šค ํŒŒ์ผ์„ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋ ค ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

Attempt to recreate a file for type org.jake.spring.entity.QAnster
Attempt to recreate a file for type org.jake.spring.entity.QMember

์ด๋Š” QAnster์™€ QMember ๊ฐ™์€ Q๊ฐ์ฒด ํŒŒ์ผ๋“ค์ด ์ด๋ฏธ ์ƒ์„ฑ๋˜์—ˆ๋Š”๋ฐ, ๋นŒ๋“œ ๊ณผ์ •์—์„œ ์ด ํŒŒ์ผ๋“ค์„ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์›์ธ

QueryDSL์€ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Qํƒ€์ž…์˜ ํด๋ž˜์Šค ํŒŒ์ผ๋“ค์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ๋“ค์€ ์ฟผ๋ฆฌ ์ž‘์„ฑ ์‹œ ํƒ€์ž… ์•ˆ์ „์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์‹œ, ์ด์ „์— ์ƒ์„ฑ๋œ Qํƒ€์ž… ํด๋ž˜์Šค ํŒŒ์ผ๋“ค์ด ์‚ญ์ œ๋˜์ง€ ์•Š๊ณ  ๋‚จ์•„ ์žˆ์œผ๋ฉด, ๋™์ผํ•œ ํŒŒ์ผ์„ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. build ํ•˜์œ„ ํด๋” ์‚ญ์ œ: ํ”„๋กœ์ ํŠธ์˜ build/generated ํด๋”๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด ํด๋” ์•ˆ์—๋Š” QueryDSL์— ์˜ํ•ด ์ž๋™ ์ƒ์„ฑ๋œ Qํƒ€์ž… ํด๋ž˜์Šค ํŒŒ์ผ๋“ค์ด ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค. ํด๋”๋ฅผ ์‚ญ์ œํ•จ์œผ๋กœ์จ, ์ด์ „์— ์ƒ์„ฑ๋œ ํŒŒ์ผ๋“ค์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. gradle build -> clean: Gradle ๋นŒ๋“œ ํˆด์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, Gradle์˜ clean ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ด์ „ ๋นŒ๋“œ ๋•Œ ์ƒ์„ฑ๋œ ํŒŒ์ผ๋“ค์„ ๋ชจ๋‘ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊นจ๋—ํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.
  3. gradle other -> compileJava: ๋งˆ์ง€๋ง‰์œผ๋กœ, compileJava ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ QueryDSL์— ์˜ํ•ด ํ•„์š”ํ•œ Qํƒ€์ž… ํด๋ž˜์Šค ํŒŒ์ผ๋“ค์ด ๋‹ค์‹œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Gradle other compileJava ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค

์‹คํ–‰ ๋ฐฉ๋ฒ•

Gradle์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ํ„ฐ๋ฏธ๋„์ด๋‚˜ ์ปค๋งจ๋“œ ๋ผ์ธ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค: 

./gradlew clean
./gradlew compileJava

์œ„ ๋ช…๋ น์–ด๋Š” Unix/Linux/macOS ์‹œ์Šคํ…œ์—์„œ์˜ ์˜ˆ์‹œ์ด๋ฉฐ, Windows์—์„œ๋Š” gradlew ๋Œ€์‹  gradlew.bat์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

(ํด๋ฆญ์œผ๋กœ ํ•˜์‹ค๋ถ„๋“ค์€ ์•„๋ž˜ ์ฐธ๊ณ )

 

generated ํด๋”๋ฅผ ์‚ญ์ œํ•œ๋‹ค

 

๊ฒฐ๋ก 

QueryDSL์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋นŒ๋“œ ๊ณผ์ • ์ค‘์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, build/generated ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ Gradle์˜ clean ํƒœ์Šคํฌ๋ฅผ ํ†ตํ•ด ์ด์ „ ๋นŒ๋“œ ํŒŒ์ผ๋“ค์„ ์ •๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์›ํ™œํ•˜๊ฒŒ ๋นŒ๋“œํ•˜๊ณ , QueryDSL์˜ Qํƒ€์ž… ํด๋ž˜์Šค ํŒŒ์ผ๋“ค์„ ์ •์ƒ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.