Entities
Kotlin JDSL์ JPQL์ entity๋ฅผ ํํํ๊ธฐ ์ํด Entity
์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. Entity
๋ฅผ ๋ง๋ค๊ธฐ ์ํด, entity()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
entity(Book::class)
Alias
๋ชจ๋ Entity
๋ alias๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ง์ฝ entity()
์ alias๋ฅผ ๋ช
์ํ์ง ์์ผ๋ฉด Kotlin JDSL์ด class ๋ช
์ ํตํด ์๋์ผ๋ก alias๋ฅผ ์์ฑํฉ๋๋ค. Entity
๋ alias๋ฅผ ํตํด ๊ตฌ๋ถ์ด ๋๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ๋์ผํ ํ์
์ Entity
๋ฅผ ํ๋ ์ด์ ์ฌ์ฉํ๋ค๋ฉด ์ด Entity
๋ค์ ๊ตฌ๋ณํ๊ธฐ ์ํด์ alias๊ฐ ํ์ํฉ๋๋ค.
entity(Book::class)
entity(Book::class, Book::class.simpleName!!)
entity(Book::class, alias = "book1")
entity(Book::class, alias = "book2")
Expression
Entity
๋ select clause ๋ predicate ๋ฑ์์ Expression
์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
// SELECT b FROM Book AS b WHERE b.isbn.value = :param1
jpql {
select(
entity(Book::class, "b"),
).from(
entity(Book::class, "b"),
).where(
entity(Book::class, "b")(Book::isbn)(Ibsn::value).eq("01"),
)
}
Treat
Entity
์ ํ์
์ ์์ ํ์
์ผ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด, treat()
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
entity(Employee::class).treat(FullTimeEmployee::class)
Last updated