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));
}