JPQL2 JPA ์ง๊ณํจ์ sum ์ long ์ ๋ฐํํ๋ค. ์ต๊ทผ ๋๋์ ๋ฐ์ดํฐ๋ค์ ์ง๊ณํ์ฌ ์กฐํํ๋ API ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์, Spring Data JPA ์ Querydsl ์ ์ด์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ์์๋ค. ์ค๋, sum ์ง๊ณ ํจ์ ๋๋ฌธ์, java object ๋ก ๋งคํ์ด ์๋๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ, ๊ทธ ์ด์ ์ ํด๊ฒฐ๊ณผ์ ์ ์ค๋ช ํด๋ณด๊ฒ ๋ค. ๊ธฐ์กด ์ฟผ๋ฆฌ @Query( """ select new service.dto.PaymentTotalSumDTO( sum(sub.totalAmount) as totalAmount, sum(sub.discount) as discount, sum(sub.usedPoint) as usedPoint ) from (select tpd.totalAmount as totalAmount, tpd.discount as discount, tpd.u.. 2023. 7. 26. [Spring Data JPA] ํ๋ฐฉ ์ฟผ๋ฆฌ์ ํจ๋ฅ (feat : JPQL) ๋ฐฑ์๋ ๊ฐ๋ฐ์ ๊ธฐ๋ณธ ์์์ธ SQL์ ์์ฑํ๋ ์ค๋ ฅ์ ๋ฐ์ด๋ ์๋ก ๋ํ ๋์ ์๋ค. ์ค์ ๋ก ๋๊ท๋ชจ ํธ๋ํฝ์ด ๋ฐ์ํ๋ ์๋น์ค์์๋ ์ด ์ฑ๋ฅ์ ๋งค์ฐ ์ค์์ ํ๋๋ฐ, ์ผ๋ฐ์ ์ธ ํ๊ฒฝ์์๋ DB ์กฐํ์ ์ธก๋ฉด์์ ํฐ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ ์ ์์ผ๋ฏ๋ก, ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๊ฐ์ ๋ฐฉ์์ด๋ผ๊ณ ๋ค ํ๋ค. SQL์ ๊ณต๋ถํ๊ณ , JPA ๋ฅผ ๊ณต๋ถํ๋ฉฐ ํญ์ ๋น ์ง ์ ์๋ ์๊ธฐ, ์ฑ๋ฅ ์ต์ ํ. ํญ์ ๊ณ ๋ฏผํ๋ค๊ฐ ๊ฐ์ ์ ํ ์ ์๋ ๊ธฐํ๊ฐ ์ฃผ์ด์ก๊ณ , ๊ณต๋ถํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๋ด ์๊ฐ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค. DB ERD Model opnions entity๋ฅผ paging ์ฒ๋ฆฌํด์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋ฝ์์ผ ํ๋ ์ํฉ. ์ฃผ์ด์ง ์ค์ ํ๋ผ๋ฏธํฐ๋ user_id ๋ฟ์ด๋ค. 1. ๋ณดํต ๊ฐ์ผ๋ฉด Document Entity๋ฅผ ๋จผ์ ์กฐํํ ํ, opinions ๋ฅผ ํ์ด์ง .. 2023. 2. 1. ์ด์ 1 ๋ค์ ๋ฐ์ํ