Search in sources :

Example 31 with Tuple

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

the class QAccessCertificationCampaignMapping method loadCases.

private void loadCases(AccessCertificationCampaignType base, Collection<SelectorOptions<GetOperationOptions>> options, @NotNull JdbcSession jdbcSession, boolean forceFull) throws SchemaException {
    QAccessCertificationCaseMapping casesMapping = QAccessCertificationCaseMapping.getAccessCertificationCaseMapping();
    PrismContainer<AccessCertificationCaseType> cases = base.asPrismObject().findOrCreateContainer(F_CASE);
    QAccessCertificationCase qcase = casesMapping.defaultAlias();
    var query = jdbcSession.newQuery().from(qcase).select(casesMapping.selectExpressions(qcase, options)).where(qcase.ownerOid.eq(SqaleUtils.oidToUUid(base.getOid())));
    // Load all / changed containers
    Collection<Long> idsToFetch = casesToFetch(options);
    if (forceFull || idsToFetch == null) {
        // Noop, no need to add additional condition
        // we are fetching all cases
        cases.setIncomplete(false);
    } else if (idsToFetch.isEmpty()) {
        return;
    } else {
        // We fetch only containers explicitly mentioned in retrieve options
        query = query.where(qcase.cid.in(idsToFetch));
    }
    List<Tuple> rows = query.fetch();
    for (Tuple row : rows) {
        AccessCertificationCaseType c = casesMapping.toSchemaObject(row, qcase, options, jdbcSession, forceFull);
        cases.add(c.asPrismContainerValue());
    }
}
Also used : AccessCertificationCaseType(com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationCaseType) Tuple(com.querydsl.core.Tuple)

Example 32 with Tuple

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

the class CollQueryStandardTest method nested_tupleProjection.

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

Example 33 with Tuple

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

the class CollQueryStandardTest method tupleOneFieldProjection.

@Test
public void tupleOneFieldProjection() {
    List<Tuple> tuples = CollQueryFactory.from(cat, data).select(new Expression<?>[] { cat.name }).fetch();
    for (Tuple tuple : tuples) {
        assertEquals(1, tuple.size());
        assertNotNull(tuple.get(cat.name));
    }
}
Also used : Expression(com.querydsl.core.types.Expression) ArrayConstructorExpression(com.querydsl.core.types.ArrayConstructorExpression) Tuple(com.querydsl.core.Tuple) Test(org.junit.Test)

Example 34 with Tuple

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

the class CollQueryTest method various.

@Test
public void various() {
    StringPath a = Expressions.stringPath("a");
    StringPath b = Expressions.stringPath("b");
    for (Tuple strs : from(a, "aa", "bb", "cc").from(b, Arrays.asList("a", "b")).where(a.startsWith(b)).select(a, b).fetch()) {
        assertEquals(strs.get(a), strs.get(b) + strs.get(b));
    }
    query().from(cat, cats).select(cat.mate).fetch();
    query().from(cat, cats).select(cat.kittens).fetch();
    query().from(cat, cats).where(cat.kittens.isEmpty()).select(cat).fetch();
    query().from(cat, cats).where(cat.kittens.isNotEmpty()).select(cat).fetch();
    query().from(cat, cats).where(cat.name.matches("fri.*")).select(cat.name).fetch();
}
Also used : StringPath(com.querydsl.core.types.dsl.StringPath) Tuple(com.querydsl.core.Tuple) Test(org.junit.Test)

Example 35 with Tuple

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

the class QTupleTest method newInstanceObjectArray.

@Test
public void newInstanceObjectArray() {
    Tuple tuple = tupleExpression.newInstance("1", 42, true);
    assertEquals(3, tuple.size());
    assertEquals("1", tuple.get(0, String.class));
    assertEquals(Integer.valueOf(42), tuple.get(1, Integer.class));
    assertEquals(Boolean.TRUE, tuple.get(2, Boolean.class));
    assertEquals("1", tuple.get(first));
    assertEquals(Integer.valueOf(42), tuple.get(second));
    assertEquals(Boolean.TRUE, tuple.get(third));
}
Also used : 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