[Project] QueryDSL ๋ฌธ์ œํ•ด๊ฒฐ

Updated:

Categories:

Tags: ,

๐Ÿ“Œ ๊ฐœ์ธ์ ์ธ ๊ณต๊ฐ„์œผ๋กœ ๊ณต๋ถ€๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋ณต์Šตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
์ •ํ™•ํ•˜์ง€ ์•Š์€ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹ค :๐Ÿ˜ธ
[ํ‹€๋ฆฐ ๋‚ด์šฉ์€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์‹œ๋ฉด ๋ณต๋ฐ›์œผ์‹ค๊ฑฐ์—์š”]


์—๋Ÿฌ 1

  1. QueryDSL ์„ ์ ์šฉํ•˜๊ณ  ๋‚˜์„œ ๋ฐ”๋กœ ๊ฒช์€ ๋ฌธ์ œโ€ฆ!

    ์™œ ๊ทธ๋Ÿฐ๊ฐ€ ํ•˜๊ณ  ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ํ˜น์‹œ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ๊ฐ€ ํ•ด์„œ ์ˆ˜์ •ํ–ˆ๋”๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

    ์•„๋ฌด๋ฆฌ ํ•ด๋„ ์•ˆ๋˜๋”๋‹ˆ ๋ฉ”์„œ๋“œ ์ˆœ์„œ๋Œ€๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ˆœ์„œ๋ฅผ ์กฐ์ •ํ•˜๋‹ˆ๊นŒ ํ•ด๊ฒฐ๋จโ€ฆ!

์—๋Ÿฌ2

  1. ๋ฌธ์ œ
    • ์ด์ œ ๋œ ์ค„ ์•Œ์•˜๋Š”๋ฐ status/ buyerCode/ itemCode ์ค‘์— ํ•˜๋‚˜๋ผ๋„ ์•ˆ ๋„ฃ์œผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์Œ

    • ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋‹ค ๋„ฃ์œผ๋ฉด ์ž˜๋งŒ๋‚˜์˜จ๋‹ค

    • null ์ด ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐ๋˜์–ด์„œ requestParam์œผ๋กœ ๋ฐ›๋˜ ๊ฒƒ์„ DTO ํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝํ•ด์„œ ๋ฐ›์•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค.,

  2. ํ•ด๊ฒฐ
    • ์›์ธ
      • ๊ธฐ์กด์— ๋งŒ๋“ค์—ˆ๋˜ OrderHeadersRepository ์ธํ„ฐํŽ˜์ด์Šค์—์„œ JPA๊ฐ€ ์ž๋™์œผ๋กœ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ด์„œ ์ƒ๊ธด ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๊ณ  - ๊ธฐ์กด์— JPARepository๋ฅผ ์ƒ์†๋ฐ›์€ OrderHeadersRepository์—์„œ findByRequestDateBetweenAndOrderStatusAndBuyer_BuyerCdAndOrderItems_ItemCD ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ 
      • OrderQueryRepositoryCustom์—์„œ๋„ ์ƒ์†๋„ ์ง€์› ๋‹ค.
      • OrderQueryRepositoryImpl ํด๋ž˜์Šค์—์„œ QueryDSL๋กœ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ–ˆ๋”๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.
    • ๊ฒฐ๊ตญ OrderHeadersRepository (JPARepository)๋ฅผ OrderQueryRepositoryCustom์—์„œ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ–‡๋Š”๋ฐ ์ด๋ฅผ ์ œ๊ฑฐํ–ˆ๋”๋‹ˆ null ์ด ๋“ค์–ด์™€๋„ ๋™์ ์œผ๋กœ ์ž˜ ์ฒ˜๋ฆฌ๋œ๋‹ค.

๋‘๊ฐ€์ง€ ๋ฌธ์ œ ๋ชจ๋‘ ๊ธฐ์กด์— ์žˆ๋˜ OrderHeadersRepository๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•˜์˜€์„๋•Œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ธ๋ฐ ๊ตณ์ด ์ƒ์†์„ ๋ฐ›์ง€ ์•Š๊ณ  custom interface์™€ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” implํด๋ž˜์Šค๋งŒ ์žˆ์œผ๋ฉด ๋ชจ๋‘ ํ•ด๊ฒฐ ๋œ๋‹ค.

Project ์นดํ…Œ๊ณ ๋ฆฌ ๋‚ด ๋‹ค๋ฅธ ๊ธ€ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

Leave a comment