Statements
JPQL์ select, update, delete statement๋ฅผ ์ง์ํฉ๋๋ค. Kotlin JDSL์ ์ด statement๋ค์ ๋ง๋ค ์ ์๋ DSL์ ์ ๊ณตํฉ๋๋ค.
Select statement
jpql()
์์ select()
๋ฅผ ํธ์ถํ๋ ๊ฒ์ผ๋ก select statement๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Select clause
select statement์ select clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, select()
๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค. select()
๋ Expression
์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ํ๋ก์ ์
์ ํํํฉ๋๋ค. ๋ง์ฝ ํ๋์ Expression
๋ง select()
์ ๋์ด์จ๋ค๋ฉด ํ์
์ถ๋ก ์ผ๋ก select statement์ ํ์
์ ๊ฒฐ์ ํ์ง๋ง ํ๋ ์ด์์ Expression
์ด ๋์ด์จ๋ค๋ฉด ํ์
๋ช
์๊ฐ ํ์ํฉ๋๋ค.
DTO projection
DTO ํด๋์ค์ ํด๋์ค์ ์์ฑ์๋ฅผ selectNew()
์ ๋๊ธฐ๋ ๊ฒ์ผ๋ก DTO ํ๋ก์ ์
์ ๋ง๋ค ์ ์์ต๋๋ค.
From clause
select statement์ from clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, from()
์ ์ด์ฉํ ์ ์์ต๋๋ค. from()
์ Entity์ Join์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ด๋ค entity๋ฅผ ํตํด ์กฐํ๊ฐ ๋๋์ง ํํํฉ๋๋ค.
Join
์กฐํ๋๋ entity๋ฅผ ์กฐ์ธํ๊ธฐ ์ํด, join()
๊ณผ fetchJoin()
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Join์๋ 2์ข
๋ฅ๊ฐ ์์ผ๋ฉฐ ์ผ๋ฐ Join๊ณผ ์ฐ๊ด๊ด๊ณ Join์ด ์์ต๋๋ค. ๋ Join์ ์ฐ๊ด๊ด๊ณ๊ฐ ์๋ entity๋ฅผ ์กฐ์ธํ๋์ง ์๋ entity๋ฅผ ์กฐ์ธํ๋์ง์ ๋ฐ๋ผ ๊ตฌ๋ณ๋ฉ๋๋ค.
join()
์ดํ์ as()
๋ฅผ ํธ์ถํ๋ ๊ฒ์ผ๋ก ์กฐ์ธ๋ entity์ alias๋ฅผ ๋ถ๊ฐํ ์ ์์ต๋๋ค. ๋ง์ฝ ๋์ผํ ํ์
์ entity๋ฅผ ์ฌ๋ฌ๊ฐ from clause์ ํฌํจ์ํฌ ๋ ์ด ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์์ต๋๋ค.
Where clause
select statement์ where clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, where()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. where()
์ Predicate๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์กฐํ ๋ฐ์ดํฐ์ ์ ์ฝ์ ํํํฉ๋๋ค. where()
์ and()
์ ์ถ์ฝ์ด๋ก whereAnd()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก where()
์ or()
์ ์ถ์ฝ์ด๋ก whereOr()
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Group by clause
select statement์ group by clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, groupBy()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. `groupBy() ๋ Expression์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ๋ฐ์ดํฐ์ ๊ทธ๋ฃนํ์ ํํํฉ๋๋ค.
Having clause
select statement์ having clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, having()
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. having()
์ Expression์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ถ๊ฐ์ ์ธ ์กฐํ ๋ฐ์ดํฐ์ ์ ์ฝ์ ํํํฉ๋๋ค. having()
๊ณผ and()
์ ์ถ์ฝ์ด๋ก havingAnd()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก having()
๊ณผ or()
์ ์ถ์ฝ์ด๋ก havingOr()
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Order by clause
select statment์ order by clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, orderBy()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. orderBy()
๋ Sort๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ๋ฐ์ดํฐ์ ์ ๋ ฌ์ ํํํฉ๋๋ค.
Update statement
jpql()
์์ update()
๋ฅผ ํธ์ถํ๋ ๊ฒ์ผ๋ก update statement๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Update clause
update statment์ update clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, update()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. update()
๋ Entity๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์์ ๋ entity๋ฅผ ํํํฉ๋๋ค.
Set clause
update statement์ set clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, set()
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. set()
์ Expression์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ํ ๋น์ ํํํฉ๋๋ค. set()
์ ์ฌ๋ฌ๋ฒ ํธ์ถํ๋ ๊ฒ์ผ๋ก ์ฌ๋ฌ ๊ฐ๋ฅผ ํ ๋นํ ์ ์์ต๋๋ค.
Where clause
update statement์ where clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, where()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. where()
์ Predicate๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์กฐํ ๋ฐ์ดํฐ์ ์ ์ฝ์ ํํํฉ๋๋ค. where()
์ and()
์ ์ถ์ฝ์ด๋ก whereAnd()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก where()
์ or()
์ ์ถ์ฝ์ด๋ก whereOr()
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Delete statement
jpql()
์์ deleteFrom()
๋ฅผ ํธ์ถํ๋ ๊ฒ์ผ๋ก delete statement๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Delete from clause
delete statement์ delete clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, deleteFrom()
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. deleteFrom()
์ Entity๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ญ์ ํ entity๋ฅผ ํํํฉ๋๋ค.
Where clause
delete statement์ where clause๋ฅผ ๋ง๋ค๊ธฐ ์ํด, where()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. where()
์ Predicate๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์กฐํ ๋ฐ์ดํฐ์ ์ ์ฝ์ ํํํฉ๋๋ค. where()
์ and()
์ ์ถ์ฝ์ด๋ก whereAnd()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก where()
์ or()
์ ์ถ์ฝ์ด๋ก whereOr()
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Last updated