Paths
Kotlin JDSL์ JPQL์ path expression์ ํํํ๊ธฐ ์ํด์ Path
์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. Path
๋ฅผ ๋ง๋ค๊ธฐ ์ํด, path()
์ invoke()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Java entity
path()
์ invoke()
๋ KProperty1
๋๋ KFuction1
๋ฅผ ์ธ์๋ก ๋ฐ์ต๋๋ค. KFunction1
์ ๊ฒฝ์ฐ, getter๋ง public์ธ Java๋ก ์ ์ธํ entity๋ฅผ ์ฌ์ฉํ ๋ ์ ์ฉํฉ๋๋ค.
Kotlin JDSL์ getter ์ด๋ฆ์์ ํ๋กํผํฐ ์ด๋ฆ์ ์ถ๋ก ํ๊ธฐ ์ํด ๋ค์ ๊ท์น์ ๋ฐ๋ฆ ๋๋ค.
is
๋ก ์์ํ๋ ๊ฒฝ์ฐ ์ด๋ฆ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.get
์ผ๋ก ์์ํ๋ ๊ฒฝ์ฐget
์ ์ ๊ฑฐํ๊ณ ์ดํ ์ฒซ ๊ธ์๋ฅผ ์๋ฌธ์๋ก ๋ณ๊ฒฝํฉ๋๋ค.๊ทธ ์ธ์ ๊ฒฝ์ฐ, ์ด๋ฆ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค.
์ ๊ท์น ๋์ ๋๋ง์ ๊ท์น์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, JpqlPropertyIntrospector
๋ฅผ ๊ตฌํํ๊ณ ์ด๋ฅผ ์ด๋ฅผ RenderContext
์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ Custom DSL์ ์ฐธ๊ณ ํ์ธ์. Spring์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด Spring supports๋ ์ฐธ๊ณ ํ์ธ์.
Expression
Path
๋ select clause ๋ predicate ๋ฑ์์ Expression
์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
Treat
Path
์ ํ์
์ ์์ ํ์
์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด, treat()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Last updated