Search in sources :

Example 16 with Tuple

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

the class SQLSerializerTest method withRecursive.

@SuppressWarnings("unchecked")
@Test
public void withRecursive() {
    /*with sub (id, firstname, superior_id) as (
            select id, firstname, superior_id from employee where firstname like 'Mike'
            union all
            select employee.id, employee.firstname, employee.superior_id from sub, employee
            where employee.superior_id = sub.id)
        select * from sub;*/
    QEmployee e = QEmployee.employee;
    PathBuilder<Tuple> sub = new PathBuilder<Tuple>(Tuple.class, "sub");
    SQLQuery<?> query = new SQLQuery<Void>(SQLTemplates.DEFAULT);
    query.withRecursive(sub, unionAll(select(e.id, e.firstname, e.superiorId).from(e).where(e.firstname.eq("Mike")), select(e.id, e.firstname, e.superiorId).from(e, sub).where(e.superiorId.eq(sub.get(e.id))))).from(sub);
    QueryMetadata md = query.getMetadata();
    md.setProjection(Wildcard.all);
    SQLSerializer serializer = new SQLSerializer(Configuration.DEFAULT);
    serializer.serialize(md, false);
    assertEquals("with recursive sub as ((select EMPLOYEE.ID, EMPLOYEE.FIRSTNAME, EMPLOYEE.SUPERIOR_ID\n" + "from EMPLOYEE EMPLOYEE\n" + "where EMPLOYEE.FIRSTNAME = ?)\n" + "union all\n" + "(select EMPLOYEE.ID, EMPLOYEE.FIRSTNAME, EMPLOYEE.SUPERIOR_ID\n" + "from EMPLOYEE EMPLOYEE, sub\n" + "where EMPLOYEE.SUPERIOR_ID = sub.ID))\n" + "select *\n" + "from sub", serializer.toString());
}
Also used : QueryMetadata(com.querydsl.core.QueryMetadata) QEmployee(com.querydsl.sql.domain.QEmployee) Tuple(com.querydsl.core.Tuple) Test(org.junit.Test)

Example 17 with Tuple

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

the class UnionBase method union_multiple_columns3.

@SuppressWarnings("unchecked")
@Test
@ExcludeIn(DERBY)
public void union_multiple_columns3() throws SQLException {
    SubQueryExpression<Tuple> sq1 = query().from(employee).select(employee.firstname, employee.lastname);
    SubQueryExpression<Tuple> sq2 = query().from(employee).select(employee.firstname, employee.lastname);
    SQLQuery<?> query = query();
    query.union(sq1, sq2);
    List<Tuple> list = query.select(employee.lastname, employee.firstname).fetch();
    assertFalse(list.isEmpty());
    for (Tuple row : list) {
        System.out.println(row.get(0, String.class) + " " + row.get(1, String.class));
    }
}
Also used : Tuple(com.querydsl.core.Tuple) Test(org.junit.Test) ExcludeIn(com.querydsl.core.testutil.ExcludeIn)

Example 18 with Tuple

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

the class UnionBase method union_multiple_columns.

@SuppressWarnings("unchecked")
@Test
public void union_multiple_columns() throws SQLException {
    SubQueryExpression<Tuple> sq1 = query().from(employee).select(employee.firstname, employee.lastname);
    SubQueryExpression<Tuple> sq2 = query().from(employee).select(employee.lastname, employee.firstname);
    List<Tuple> list = query().union(sq1, sq2).fetch();
    assertFalse(list.isEmpty());
    for (Tuple row : list) {
        assertNotNull(row.get(0, Object.class));
        assertNotNull(row.get(1, Object.class));
    }
}
Also used : Tuple(com.querydsl.core.Tuple) Test(org.junit.Test)

Example 19 with Tuple

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

the class CollQueryStandardTest method tupleMultipleFieldsProjection.

@Test
public void tupleMultipleFieldsProjection() {
    List<Tuple> tuples = CollQueryFactory.from(cat, data).select(cat.name, cat.birthdate).fetch();
    for (Tuple tuple : tuples) {
        assertNotNull(tuple.get(cat.name));
        assertNotNull(tuple.get(cat.birthdate));
    }
}
Also used : Tuple(com.querydsl.core.Tuple) Test(org.junit.Test)

Example 20 with Tuple

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

the class CollQueryStandardTest method tupleOneNullFieldProjection.

@Test
public void tupleOneNullFieldProjection() {
    List<Tuple> tuples = CollQueryFactory.from(cat, data).select(new Expression<?>[] { Expressions.nullExpression() }).fetch();
    for (Tuple tuple : tuples) {
        assertNotNull(tuple);
        // THIS FAILS WITH NPE
        assertEquals(1, tuple.size());
        assertNull(tuple.get(Expressions.nullExpression()));
    }
}
Also used : Expression(com.querydsl.core.types.Expression) ArrayConstructorExpression(com.querydsl.core.types.ArrayConstructorExpression) 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