Search in sources :

Example 41 with Tuple

use of com.querydsl.core.Tuple in project querydsl by querydsl.

the class UnionBase method union5.

// FIXME for CUBRID
// Teradata: The ORDER BY clause must contain only integer constants.
@SuppressWarnings("unchecked")
@Test
@ExcludeIn({ DERBY, CUBRID, FIREBIRD, TERADATA })
// FIXME
@Ignore
public void union5() {
    /* (select e.ID, e.FIRSTNAME, superior.ID as sup_id, superior.FIRSTNAME as sup_name
         * from EMPLOYEE e join EMPLOYEE superior on e.SUPERIOR_ID = superior.ID)
         * union
         * (select e.ID, e.FIRSTNAME, null, null from EMPLOYEE e)
         * order by ID asc
         */
    QEmployee superior = new QEmployee("superior");
    SubQueryExpression<Tuple> sq1 = query().from(employee).join(employee.superiorIdKey, superior).select(employee.id, employee.firstname, superior.id.as("sup_id"), superior.firstname.as("sup_name"));
    SubQueryExpression<Tuple> sq2 = query().from(employee).select(employee.id, employee.firstname, null, null);
    List<Tuple> results = query().union(sq1, sq2).orderBy(employee.id.asc()).fetch();
    for (Tuple result : results) {
        System.err.println(Collections.singletonList(result));
    }
}
Also used : QEmployee(com.querydsl.sql.domain.QEmployee) Tuple(com.querydsl.core.Tuple) Ignore(org.junit.Ignore) Test(org.junit.Test) ExcludeIn(com.querydsl.core.testutil.ExcludeIn)

Example 42 with Tuple

use of com.querydsl.core.Tuple in project querydsl by querydsl.

the class SelectWindowFunctionsBase method windowFunctions_manual_paging.

@Test
public void windowFunctions_manual_paging() {
    Expression<Long> rowNumber = SQLExpressions.rowNumber().over().orderBy(employee.lastname.asc()).as("rn");
    Expression<Object[]> all = Wildcard.all;
    // simple
    System.out.println("#1");
    for (Tuple row : query().from(employee).select(employee.firstname, employee.lastname, rowNumber).fetch()) {
        System.out.println(row);
    }
    System.out.println();
    // with subquery, generic alias
    System.out.println("#2");
    SQLQuery<Tuple> sub = query().from(employee).select(employee.firstname, employee.lastname, rowNumber);
    SimplePath<Tuple> subAlias = Expressions.path(Tuple.class, "s");
    for (Object[] row : query().from(sub.as(subAlias)).select(all).fetch()) {
        System.out.println(Arrays.asList(row));
    }
    System.out.println();
    // with subquery, only row number
    System.out.println("#3");
    SQLQuery<Long> sub2 = query().from(employee).select(rowNumber);
    SimplePath<Long> subAlias2 = Expressions.path(Long.class, "s");
    for (Object[] row : query().from(sub2.as(subAlias2)).select(all).fetch()) {
        System.out.println(Arrays.asList(row));
    }
    System.out.println();
    // with subquery, specific alias
    System.out.println("#4");
    SQLQuery<Tuple> sub3 = query().from(employee).select(employee.firstname, employee.lastname, rowNumber);
    for (Tuple row : query().from(sub3.as(employee2)).select(employee2.firstname, employee2.lastname).fetch()) {
        System.out.println(Collections.singletonList(row));
    }
}
Also used : Tuple(com.querydsl.core.Tuple) Test(org.junit.Test)

Example 43 with Tuple

use of com.querydsl.core.Tuple in project querydsl by querydsl.

the class GroupByIterateTest method map3.

@Test
public void map3() {
    CloseableIterator<Map<Integer, Map<Integer, String>>> results = MAP3_RESULTS.transform(groupBy(postId).iterate(map(postId, map(commentId, commentText))));
    List<Map<Integer, Map<Integer, String>>> actual = IteratorAdapter.asList(results);
    Object postId = null;
    Map<Integer, Map<Integer, String>> posts = null;
    List<Map<Integer, Map<Integer, String>>> expected = new LinkedList<Map<Integer, Map<Integer, String>>>();
    for (Iterator<Tuple> iterator = MAP3_RESULTS.iterate(); iterator.hasNext(); ) {
        Tuple tuple = iterator.next();
        Object[] array = tuple.toArray();
        if (posts == null || !(postId == array[0] || postId != null && postId.equals(array[0]))) {
            posts = new LinkedHashMap<Integer, Map<Integer, String>>();
            expected.add(posts);
        }
        postId = array[0];
        @SuppressWarnings("unchecked") Pair<Integer, Pair<Integer, String>> pair = (Pair<Integer, Pair<Integer, String>>) array[1];
        Integer first = pair.getFirst();
        Map<Integer, String> comments = posts.computeIfAbsent(first, k -> new LinkedHashMap<Integer, String>());
        Pair<Integer, String> second = pair.getSecond();
        comments.put(second.getFirst(), second.getSecond());
    }
    assertEquals(expected.toString(), actual.toString());
}
Also used : Tuple(com.querydsl.core.Tuple) Pair(com.mysema.commons.lang.Pair) Test(org.junit.Test)

Example 44 with Tuple

use of com.querydsl.core.Tuple in project querydsl by querydsl.

the class ConstantHidingExpressionTest method constants_hidden.

@Test
public void constants_hidden() {
    FactoryExpression<Tuple> tuple = Projections.tuple(Expressions.stringPath("str"), Expressions.TRUE, Expressions.FALSE.as("false"), Expressions.constant(1));
    FactoryExpression<Tuple> wrapped = new ConstantHidingExpression<Tuple>(tuple);
    assertEquals(1, wrapped.getArgs().size());
    Tuple t = wrapped.newInstance("s");
    assertEquals("s", t.get(Expressions.stringPath("str")));
    assertEquals(Boolean.TRUE, t.get(Expressions.TRUE));
    assertEquals(Boolean.FALSE, t.get(Expressions.FALSE.as("false")));
    assertEquals(Integer.valueOf(1), t.get(Expressions.constant(1)));
}
Also used : Tuple(com.querydsl.core.Tuple) Test(org.junit.Test)

Example 45 with Tuple

use of com.querydsl.core.Tuple in project querydsl by querydsl.

the class NumberConversionsTest method name.

@Test
public void name() {
    EnumPath<Color> color = Expressions.enumPath(Color.class, "path");
    QTuple qTuple = Projections.tuple(color);
    NumberConversions<Tuple> conversions = new NumberConversions<Tuple>(qTuple);
    assertEquals(Color.BLUE, conversions.newInstance("BLUE").get(color));
}
Also used : QTuple(com.querydsl.core.types.QTuple) QTuple(com.querydsl.core.types.QTuple) Tuple(com.querydsl.core.Tuple) Test(org.junit.Test)

Aggregations

Tuple (com.querydsl.core.Tuple)55 Test (org.junit.Test)41 ExcludeIn (com.querydsl.core.testutil.ExcludeIn)10 Pair (com.mysema.commons.lang.Pair)7 QTuple (com.querydsl.core.types.QTuple)6 Expression (com.querydsl.core.types.Expression)4 StringPath (com.querydsl.core.types.dsl.StringPath)4 AbstractBaseTest (com.querydsl.sql.AbstractBaseTest)4 QCat (com.querydsl.jpa.domain.QCat)3 SAnimal (com.querydsl.jpa.domain.sql.SAnimal)3 QEmployee (com.querydsl.sql.domain.QEmployee)3 ArrayList (java.util.ArrayList)3 Ignore (org.junit.Ignore)3 QObject (com.evolveum.midpoint.repo.sqale.qmodel.object.QObject)2 ResultListRowTransformer (com.evolveum.midpoint.repo.sqlbase.mapping.ResultListRowTransformer)2 GetOperationOptions (com.evolveum.midpoint.schema.GetOperationOptions)2 SchemaException (com.evolveum.midpoint.util.exception.SchemaException)2 SystemException (com.evolveum.midpoint.util.exception.SystemException)2 QueryMetadata (com.querydsl.core.QueryMetadata)2 Group (com.querydsl.core.group.Group)2