๐Ÿ“˜
Kotlin JDSL
Discord
ko
ko
  • Kotlin JDSL
  • JPQL with Kotlin JDSL
    • Statements
    • Entities
    • Paths
    • Expressions
    • Predicates
    • Sorts
    • Subqueries
    • Custom DSL
    • Spring supports
    • Migration 2.X to 3.X
  • Kotlin JDSL Roadmap
  • FAQ
    • ์–ด๋–ป๊ฒŒ ์ƒ์„ฑ๋œ ์ฟผ๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‚˜์š”?
    • Kotlin value class ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?
    • Kotlin JDSL๊ณผ jOOQ, QueryDSL์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?
    • ์™œ Kotlin JDSL์€ Nullableํ•œ ๋ฐ˜ํ™˜ ํƒ€์ž…์„ ํ—ˆ์šฉํ•˜๋‚˜์š”?
Powered by GitBook
On this page
  • Alias
  • Expression
  • Treat
  1. JPQL with Kotlin JDSL

Entities

PreviousStatementsNextPaths

Last updated 1 year ago

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 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)
predicate
Expression
select clause