Search in sources :

Example 1 with Group

use of com.querydsl.core.group.Group in project querydsl by querydsl.

the class GroupByTest method group_by_null.

@Test
@Ignore
public void group_by_null() {
    Map<Integer, Group> results = CollQueryFactory.from(post, posts).from(comment, comments).where(comment.post.id.eq(post.id)).transform(groupBy(post.id).as(post.name, set(comment.id), list(comment.text)));
    Group group = results.get(null);
    assertNull(group.getOne(post.id));
    assertEquals("null post", group.getOne(post.name));
    assertEquals(toSet(7, 8), group.getSet(comment.id));
    assertEquals(Arrays.asList("comment 7", "comment 8"), group.getList(comment.text));
}
Also used : Group(com.querydsl.core.group.Group) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 2 with Group

use of com.querydsl.core.group.Group in project querydsl by querydsl.

the class GroupByTest method map_.

@Test
@Ignore
public void map_() {
    Map<Integer, Group> results = CollQueryFactory.from(post, posts).from(comment, comments).where(comment.post.id.eq(post.id)).transform(groupBy(post.id).as(post.name, map(comment.id, comment.text)));
    Group group = results.get(1);
    Map<Integer, String> comments = group.getMap(comment.id, comment.text);
    assertEquals(1, comments.size());
//        assertEquals("comment 2", comments.get(2));
}
Also used : Group(com.querydsl.core.group.Group) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 3 with Group

use of com.querydsl.core.group.Group in project querydsl by querydsl.

the class GroupByTest method classCastException.

//    @Test(expected=NoSuchElementException.class)
//    public void noSuchElementException() {
//        Map<Integer, Group> results = BASIC_RESULTS.transform(
//            groupBy(postId, postName, set(commentId), list(commentText)));
//
//        Group group = results.get(1);
//        group.getSet(qComment);
//    }
@Test(expected = ClassCastException.class)
public void classCastException() {
    Map<Integer, Group> results = CollQueryFactory.from(post, posts).from(comment, comments).where(comment.post.id.eq(post.id)).transform(groupBy(post.id).as(post.name, set(comment.id), list(comment.text)));
    Group group = results.get(1);
    group.getList(comment.id);
}
Also used : Group(com.querydsl.core.group.Group) Test(org.junit.Test)

Example 4 with Group

use of com.querydsl.core.group.Group in project querydsl by querydsl.

the class AbstractJPATest method transform_groupBy2.

@Test
@ExcludeIn(DERBY)
public void transform_groupBy2() {
    QCat kitten = new QCat("kitten");
    Map<List<?>, Group> result = query().from(cat).innerJoin(cat.kittens, kitten).transform(GroupBy.groupBy(cat.id, kitten.id).as(cat, kitten));
    assertFalse(result.isEmpty());
    for (Tuple row : query().from(cat).innerJoin(cat.kittens, kitten).select(cat, kitten).fetch()) {
        assertNotNull(result.get(Arrays.asList(row.get(cat).getId(), row.get(kitten).getId())));
    }
}
Also used : Group(com.querydsl.core.group.Group) ImmutableList(com.google.common.collect.ImmutableList) MockTuple(com.querydsl.core.group.MockTuple) Test(org.junit.Test) ExcludeIn(com.querydsl.core.testutil.ExcludeIn)

Example 5 with Group

use of com.querydsl.core.group.Group in project querydsl by querydsl.

the class SelectBase method groupBy_superior.

@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));
}
Also used : Group(com.querydsl.core.group.Group) Test(org.junit.Test)

Aggregations

Group (com.querydsl.core.group.Group)8 Test (org.junit.Test)8 ExcludeIn (com.querydsl.core.testutil.ExcludeIn)2 Ignore (org.junit.Ignore)2 ImmutableList (com.google.common.collect.ImmutableList)1 MockTuple (com.querydsl.core.group.MockTuple)1 BigInteger (java.math.BigInteger)1