5
Czy jest możliwe uzyskanie liczby wyników agregacji przy użyciu przetwarzania grupowego w QueryDSL? Mam następujące zapytanie:Zliczanie w transformatorze grupującym QueryDSL
query.from(catalog)
.innerJoin(qe).on(catalog.id.eq(qe.itemId))
.innerJoin(enterprise).on(enterprise.id.eq(qe.enterpriseId))
.leftJoin(catalogPerson).on(catalogPerson.catalogId.eq(catalog.id))
.where(catalog.deletionDate.isNull(), qe.enterpriseId.eq(org))
.orderBy(catalog.creationDate.desc())
.limit(limit)
.offset(offset)
.transform(groupBy(catalog.id).as(Projections.constructor(Catalog.class,
catalog.id,
catalog.name,
catalog.code,
// //GET THE NUMBER OF CATALOG PERSONS'
)));
i chcę uzyskać liczbę osób należących do określonego katalogu.
Dzięki
Dzięki Timo. To tylko mała sugestia. Byłoby miło, gdyby ktoś mógł opracować "receptury QueryDSL" na przykłady z życia wzięte, które nie są wymienione w dokumentacji, jak ta. – Nedo
Dobry pomysł. Jaki tytuł przepisu sugerujesz dla tego przykładu? Projections.constructor i count() sprawiają, że jest to trochę wyjątkowe, reszta to całkiem zwyczajne użycie SQL Querydsl. –
Coś w rodzaju "Aggregating dzieci liczy się w jednostkę nadrzędną" lub "Agregacja liczy się w encji root" ... =) Spróbuję ponownie przywołać niektóre niezwykłe konstrukcje QueryDSL stąd na stackoverflow. – Nedo