Java Examples for com.querydsl.core.group.GroupBy
The following java examples will help you to understand the usage of com.querydsl.core.group.GroupBy. These source code samples are taken from different open source projects.
Example 1
| Project: querydsl-master File: SelectBase.java View source code |
@Test
public void groupBy_superior() {
SQLQuery<?> qry = query().from(employee).innerJoin(employee._superiorIdKey, employee2);
QTuple subordinates = Projections.tuple(employee2.id, employee2.firstname, employee2.lastname);
Map<Integer, Group> results = qry.transform(GroupBy.groupBy(employee.id).as(employee.firstname, employee.lastname, GroupBy.map(employee2.id, subordinates)));
assertEquals(2, results.size());
// Mike Smith
Group group = results.get(1);
assertEquals("Mike", group.getOne(employee.firstname));
assertEquals("Smith", group.getOne(employee.lastname));
Map<Integer, Tuple> emps = group.getMap(employee2.id, subordinates);
assertEquals(4, emps.size());
assertEquals("Steve", emps.get(12).get(employee2.firstname));
// Mary Smith
group = results.get(2);
assertEquals("Mary", group.getOne(employee.firstname));
assertEquals("Smith", group.getOne(employee.lastname));
emps = group.getMap(employee2.id, subordinates);
assertEquals(4, emps.size());
assertEquals("Mason", emps.get(21).get(employee2.lastname));
}Example 2
| Project: artifact-listener-master File: ArtifactVersionNotificationDaoImpl.java View source code |
@Override
public Map<User, List<ArtifactVersionNotification>> listNotificationsToSend() {
JPAQuery<Void> query = new JPAQuery<>(getEntityManager());
return query.from(qArtifactVersionNotification).where(qArtifactVersionNotification.status.eq(ArtifactVersionNotificationStatus.PENDING)).orderBy(qArtifactVersionNotification.user.id.asc(), qArtifactVersionNotification.id.asc()).transform(GroupBy.groupBy(qArtifactVersionNotification.user).as(GroupBy.list(qArtifactVersionNotification)));
}Example 3
| Project: owsi-core-parent-master File: StatisticDaoImpl.java View source code |
@Override
public Table<UserGender, Date, Integer> getUserCreationCountByGenderByWeekStatistics(Range<Date> dateRange) {
final DateDiscreteDomain domain = DateDiscreteDomain.weeks();
dateRange = domain.alignOut(dateRange);
return new JPAQuery<>(getEntityManager()).from(QUser.user).groupBy(QUser.user.gender, QUser.user.creationDate).where(Expressions2.inRange(QUser.user.creationDate, dateRange)).orderBy(QUser.user.gender.asc(), QUser.user.creationDate.asc()).transform(GroupBy2.transformer(GroupBy2.table(QUser.user.gender, new MappingProjection<Date>(Date.class, QUser.user.creationDate) {
private static final long serialVersionUID = 1L;
@Override
protected Date map(Tuple row) {
return domain.alignPrevious(row.get(0, Date.class));
}
}, /**
* We sum twice: once in the SQL query (for each date) and once in Java (for each week).
* We could have summed only in Java, but it would be less optimized if
* many user are created each day.
* The even better solution would have been to group by week in the SQL query,
* but unfortunately it's not easy to do with JPQL.
*/
GroupBy.sum(QUser.user.count().intValue()))));
}Example 4
| Project: timetracker-master File: WorklogDetailsReportQueryBuilder.java View source code |
private Map<Long, List<String>> selectAffectedVersions(final Connection connection, final Configuration configuration, final Set<Long> issueIds) {
QJiraissue qIssue = new QJiraissue("na_issue");
QNodeassociation qNodeassociation = new QNodeassociation("nodeassocitation");
QProjectversion qProjectversion = new QProjectversion("na_version");
return new SQLQuery<>(connection, configuration).select(qIssue.id, qProjectversion.vname).from(qProjectversion).join(qNodeassociation).on(qNodeassociation.sinkNodeId.eq(qProjectversion.id)).join(qIssue).on(qNodeassociation.sourceNodeId.eq(qIssue.id)).where(qNodeassociation.associationType.eq(IssueRelationConstants.VERSION).and(qNodeassociation.sinkNodeEntity.eq(Entity.Name.VERSION)).and(qNodeassociation.sourceNodeEntity.eq(Entity.Name.ISSUE)).and(qIssue.id.in(issueIds))).transform(GroupBy.groupBy(qIssue.id).as(GroupBy.list(qProjectversion.vname)));
}Example 5
| Project: javersion-master File: DocumentVersionStoreJdbcTest.java View source code |
private Map<Revision, Long> findOrdinals(String docId) {
return queryFactory.from(documentVersion).where(documentVersion.docId.eq(docId)).transform(GroupBy.groupBy(documentVersion.revision).as(documentVersion.ordinal));
}