Subqueries
select statement์ asEntity()์ asSubquery()๋ฅผ ํธ์ถํ๋ ๊ฒ์ผ๋ก subquery๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Derived entity
asEntity()๋ฅผ ํตํด select statement๋ Entity๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
data class DerivedEntity(
val employeeId: Long,
val count: Long,
)
val query = jpql {
val subquery = select<DerivedEntity>(
path(Employee::employeeId).`as`(expression("employeeId")),
count(Employee::employeeId).`as`(expression("count")),
).from(
entity(Employee::class),
join(Employee::departments),
).groupBy(
path(Employee::employeeId),
).having(
count(Employee::employeeId).greaterThan(1L),
)
select(
count(DerivedEntity::employeeId),
).from(
subquery.asEntity(),
)
}Subquery
asSubquery()๋ฅผ ํตํด select statement๋ Expression๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
Last updated