Statements

JPQL์€ select, update, delete statement๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Kotlin JDSL์€ ์ด statement๋“ค์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” DSL์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Select statement

jpql()์—์„œ select()๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์œผ๋กœ select statement๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

val query = jpql {
    select(
        path(Employee::employeeId),
    ).from(
        entity(Employee::class),
        join(Employee::departments),
    ).where(
        type(entity(Employee::class)).eq(FullTimeEmployee::class)
    ).groupBy(
        path(Employee::employeeId),
    ).having(
        count(Employee::employeeId).greaterThan(1L),
    ).orderBy(
        count(Employee::employeeId).desc(),
        path(Employee::employeeId).asc(),
    )
}

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()์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง‘ํ•ฉ ์—ฐ์‚ฐ (UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT, INTERSECT ALL)

Jakarta Persistence 3.2๋ถ€ํ„ฐ JPQL์€ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘˜ ์ด์ƒ์˜ SELECT ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Kotlin JDSL์€ ์ด๋Ÿฌํ•œ ์ƒˆ๋กœ์šด ํ‘œ์ค€ ๊ธฐ๋Šฅ์ธ UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT, INTERSECT ALL ์—ฐ์‚ฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • UNION: ๋‘ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์„ ๊ฒฐํ•ฉํ•˜๊ณ  ์ค‘๋ณต๋œ ํ–‰์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

  • UNION ALL: ๋‘ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์„ ๊ฒฐํ•ฉํ•˜๊ณ  ๋ชจ๋“  ์ค‘๋ณต๋œ ํ–‰์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  • EXCEPT: ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์—์„œ ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์— ์—†๋Š” ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

  • EXCEPT ALL: ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์—์„œ ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์— ์—†๋Š” ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋ชจ๋“  ์ค‘๋ณต์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

  • INTERSECT: ๋‘ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ ๋ชจ๋‘์— ์กด์žฌํ•˜๋Š” ํ–‰๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

  • INTERSECT ALL: ๋‘ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ ๋ชจ๋‘์— ์กด์žฌํ•˜๋Š” ํ–‰๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋ชจ๋“  ์ค‘๋ณต์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์ง‘ํ•ฉ ์—ฐ์‚ฐ(UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT, INTERSECT ALL)์— ํฌํ•จ๋˜๋Š” SELECT ๋ฌธ๋“ค์€ select ๋ชฉ๋ก์— ๋™์ผํ•œ ์ˆ˜์˜ ์—ด์„ ๊ฐ€์ ธ์•ผ ํ•˜๋ฉฐ, ํ•ด๋‹น ์—ด์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์„œ๋กœ ํ˜ธํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ๋œ Select ์ฟผ๋ฆฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ:

select ์ฟผ๋ฆฌ ๊ตฌ์กฐ(์˜ˆ: select, from, where, groupBy, ๋˜๋Š” having ์ ˆ ๋’ค)์— union(), unionAll(), except(), exceptAll(), intersect(), ๋˜๋Š” intersectAll()์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. orderBy() ์ ˆ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ, ์ง‘ํ•ฉ ์—ฐ์‚ฐ์˜ ์ตœ์ข… ๊ฒฐ๊ณผ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ ์—ฐ์‚ฐ์œผ๋กœ ์‚ฌ์šฉ:

jpql ๋ธ”๋ก ๋‚ด์—์„œ ๋‘ ๊ฐœ์˜ JpqlQueryable<SelectQuery<T>> ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ union(), unionAll(), except(), exceptAll(), intersect(), intersectAll()์„ ์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ ์—ฐ์‚ฐ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ORDER BY์— ๋Œ€ํ•œ ์ค‘์š” ์ฐธ๊ณ  ์‚ฌํ•ญ:

ORDER BY ์ ˆ์€ ์ง‘ํ•ฉ ์—ฐ์‚ฐ(UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT, INTERSECT ALL)์˜ ์ตœ์ข… ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ง‘ํ•ฉ ์—ฐ์‚ฐ ์ž์ฒด์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์˜ ์ผ๋ถ€์ธ ๊ฐœ๋ณ„ SELECT ์ฟผ๋ฆฌ์— ์ ์šฉ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (๋ฌผ๋ก , ํ•˜์œ„ ์ฟผ๋ฆฌ๊ฐ€ ์ง‘ํ•ฉ ์—ฐ์‚ฐ ์ „์— ๊ฒฐ๊ณผ๋ฅผ ์ œํ•œํ•˜๋Š” ๋“ฑ์˜ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์ž์ฒด ORDER BY๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ JPQL์—์„œ ์ง‘ํ•ฉ ์—ฐ์‚ฐ๊ณผ ์ตœ์ข… ์ •๋ ฌ์„ ์œ„ํ•ด ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ์•„๋‹™๋‹ˆ๋‹ค.) ORDER BY ์ ˆ์˜ ์ •๋ ฌ ๊ธฐ์ค€์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์˜ SELECT ๋ชฉ๋ก์— ์žˆ๋Š” ์—ด์˜ ๋ณ„์นญ ๋˜๋Š” ์œ„์น˜๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธํ™˜์„ฑ ์ฐธ๊ณ ์‚ฌํ•ญ:

์ด๋Ÿฌํ•œ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์€ JPA 3.2 ์‚ฌ์–‘์˜ ์ผ๋ถ€์ด์ง€๋งŒ, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋ชจ๋“  ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

  • H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(๋ฒ„์ „ 1.4.192 - 2.3.232)๋Š” UNION, UNION ALL, INTERSECT, EXCEPT๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ EXCEPT ALL์ด๋‚˜ INTERSECT ALL์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • PostgreSQL, Oracle, SQL Server๋Š” ์—ฌ์„ฏ ๊ฐ€์ง€ ์—ฐ์‚ฐ(UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT, INTERSECT ALL)์„ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • MySQL์€ UNION๊ณผ UNION ALL์€ ์ง€์›ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ž์—๋Š” ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

    • EXCEPT๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” NOT EXISTS ๋˜๋Š” LEFT JOIN์„ ์‚ฌ์šฉํ•˜์—ฌ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • INTERSECT๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” INNER JOIN ๋˜๋Š” IN์„ ์‚ฌ์šฉํ•˜์—ฌ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • EXCEPT ALL ๋ฐ INTERSECT ALL์€ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฐ„๋‹จํ•œ ๋Œ€์ฒด ์ฟผ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ด๋ฅผ ์ง€์›ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๋Œ€์ฒด ์ฟผ๋ฆฌ ์ „๋žต์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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