๐ ๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ๊ธ์์๋ QueryDSL์์ SQL ํจ์๋ฅผ ํ์ฉํ๋ ๋ฒ์ ์ ๋ฆฌํ๋ค.
SQL Function์ด๋? DB๊ฐ ์ ๊ณตํ๋ ๋ค์ํ ํจ์๋ฅผ QueryDSL์์ ์ธ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ. SQLExpressions ํด๋์ค๋ก ํ์ฉํ๋ค.
1. ๋ฌธ์์ด ํจ์
1
2
3
4
5
| // concat: ๋ฌธ์์ด ํฉ์น๊ธฐ โ "์ด๋ฆ(๋์ด)"
SQLExpressions.concat(member.name, "(", member.age, ")")
// lower: ์๋ฌธ์ ๋ณํ
SQLExpressions.lower(member.name)
|
2. ๋ ์ง ํจ์
1
2
| SQLExpressions.currentDate() // ํ์ฌ ๋ ์ง
SQLExpressions.addDays(member.joinDate, 7) // joinDate + 7์ผ
|
3. ์ํ ํจ์
1
2
| SQLExpressions.sqrt(member.age.doubleValue()) // ์ ๊ณฑ๊ทผ
SQLExpressions.round(member.height) // ๋ฐ์ฌ๋ฆผ
|
4. coalesce โ NULL ์ฒ๋ฆฌ
1
| SQLExpressions.coalesce(member.nickname, "๋๋ค์ ์์") // null์ด๋ฉด ๊ธฐ๋ณธ๊ฐ
|
์ฃผ์ ํจ์๋ฅผ ์ ๋ฆฌํ๋ฉด:
| ๋ถ๋ฅ | ํจ์ |
|---|
| ๋ฌธ์์ด | concat, lower |
| ๋ ์ง | currentDate, addDays |
| ์ํ | sqrt, round |
| NULL | coalesce(null โ ๊ธฐ๋ณธ๊ฐ) |
๐ ์ฃผ์์ฌํญ๊ณผ ํ
โ ๏ธ SQL ํจ์๋ DB ์ข
๋ฅ์ ๋ฐ๋ผ ์ง์ ์ฌ๋ถ๊ฐ ๋ค๋ฅด๋ค. ํจ์ ์ฌ์ฉ ์ ํ์
๋ณํ์ ์ฃผ์ํ๋ฉฐ, ํ์ํ๋ฉด NumberTemplateยทStringTemplate์ผ๋ก ํ์
์ ๋ง์ถ๋ค.
๐ ์ ๋ฆฌ
1
2
3
4
5
| QueryDSL SQL ํจ์ (SQLExpressions)
โโ ๋ฌธ์์ด concat, lower
โโ ๋ ์ง currentDate, addDays
โโ ์ํ sqrt, round
โโ NULL coalesce
|
| ๊ฐ๋
| ํ ์ค ์ ์ |
|---|
| SQLExpressions | SQL ํจ์ ํ์ฉ ํด๋์ค |
| coalesce | null์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก |
| Template | ๋ฏธ์ง์ ํจ์๋ฅผ ์ง์ ์ ์ |
SQL ํจ์๋ฅผ QueryDSL์์ ์ฐ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ์ฐํ๊ฒ ๊ฐ๊ณตํ ์ ์๋ค. ๋ค๋ง DB๋ง๋ค ์ง์ ํจ์๊ฐ ๋ค๋ฅด๋ค๋ ์ , ํ์
๋ณํ์ ์ ์ํด์ผ ํ๋ค๋ ์ ์ ๊ธฐ์ตํ์.
Comments powered by Disqus.