'QueryDsl group by with multiple fields
i m trying to include a groupBy in a queryDsl function but i can't come out with an answer.
override fun list(
urlRecords: RecordMap?,
parameters: Parameters,
orderBy: Array<out OrderSpecifier<*>>,
limitOffset: LimitOffset
) = with(dal) {
val selectActions = actions.mapValues { (_, action) ->
action.enabledPredicate(ExpressionType.SELECT)
}
val queryResults = jpaQueryFactory
.from(entityPath)
.apply { joins.forEach { join(it) } }
.apply { leftJoins.forEach { leftJoin(it) } }
.apply(applyJoins)
.select(
QLegameAssistito.legameAssistito.assistito.id,
QLegameAssistito.legameAssistito.inizioValidita,
QLegameAssistito.legameAssistito.fineValidita
)
.apply { if (distinct != null) distinct() }
.where(where(urlRecords), filterWhere(parameters))
.groupBy(QLegameAssistito.legameAssistito.assistito.id,
QLegameAssistito.legameAssistito.inizioValidita,
QLegameAssistito.legameAssistito.fineValidita
)
.orderBy(*orderBy)
.limit(limitOffset.limit)
.offset(limitOffset.offset)
.fetchResults()
ListResults(selectActions, queryResults)
}
Error:
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found ',' near line 1, column 51 [select count(distinct legameAssistito.assistito.id, legameAssistito.inizioValidita, legameAssistito.fineValidita)
If you take off the groupBy,it works.Also it seems there is a problem is probably in concatenating values in the groupby as it works with just one value.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
