Search in sources :

Example 71 with Query

use of org.hibernate.query.Query in project hibernate-orm by hibernate.

the class NativeQueryScrollableResults method testSetParameters.

@Test
public void testSetParameters() {
    final List params = new ArrayList();
    params.add(new BigInteger("2"));
    params.add(new BigInteger("3"));
    try (Session s = openSession()) {
        final Query query = s.createNativeQuery("select e.big from MY_ENTITY e where e.big in (:bigValues)").setParameter("bigValues", params);
        try (ScrollableResults scroll = query.scroll()) {
            while (scroll.next()) {
                assertThat(scroll.get()[0], not(nullValue()));
            }
        }
    }
}
Also used : Query(org.hibernate.query.Query) ArrayList(java.util.ArrayList) BigInteger(java.math.BigInteger) ArrayList(java.util.ArrayList) List(java.util.List) ScrollableResults(org.hibernate.ScrollableResults) Session(org.hibernate.Session) Test(org.junit.Test)

Example 72 with Query

use of org.hibernate.query.Query in project hibernate-orm by hibernate.

the class AbstractAuditQuery method buildQuery.

protected Query buildQuery() {
    Query query = qb.toQuery(versionsReader.getSession());
    setQueryProperties(query);
    return query;
}
Also used : Query(org.hibernate.query.Query) AuditAssociationQuery(org.hibernate.envers.query.AuditAssociationQuery) AuditQuery(org.hibernate.envers.query.AuditQuery)

Example 73 with Query

use of org.hibernate.query.Query in project hibernate-orm by hibernate.

the class EntitiesAtRevisionQuery method list.

public List list() {
    /*
         * The query that we need to create:
         *   SELECT new list(e) FROM versionsReferencedEntity e
         *   WHERE
         * (all specified conditions, transformed, on the "e" entity) AND
         * (selecting e entities at revision :revision)
         *   --> for DefaultAuditStrategy:
         *     e.revision = (SELECT max(e2.revision) FROM versionsReferencedEntity e2
         *       WHERE e2.revision <= :revision AND e2.id = e.id) 
         *     
         *   --> for ValidityAuditStrategy:
         *     e.revision <= :revision and (e.endRevision > :revision or e.endRevision is null)
         *     
         *     AND
         * (only non-deleted entities)
         *     e.revision_type != DEL
         */
    AuditEntitiesConfiguration verEntCfg = enversService.getAuditEntitiesConfiguration();
    String revisionPropertyPath = verEntCfg.getRevisionNumberPath();
    String originalIdPropertyName = verEntCfg.getOriginalIdPropName();
    MiddleIdData referencedIdData = new MiddleIdData(verEntCfg, enversService.getEntitiesConfigurations().get(entityName).getIdMappingData(), null, entityName, enversService.getEntitiesConfigurations().isVersioned(entityName));
    // (selecting e entities at revision :revision)
    // --> based on auditStrategy (see above)
    enversService.getAuditStrategy().addEntityAtRevisionRestriction(enversService.getGlobalConfiguration(), qb, qb.getRootParameters(), revisionPropertyPath, verEntCfg.getRevisionEndFieldName(), true, referencedIdData, revisionPropertyPath, originalIdPropertyName, REFERENCED_ENTITY_ALIAS, REFERENCED_ENTITY_ALIAS_DEF_AUD_STR, true);
    if (!includeDeletions) {
        // e.revision_type != DEL
        qb.getRootParameters().addWhereWithParam(verEntCfg.getRevisionTypePropName(), "<>", RevisionType.DEL);
    }
    // all specified conditions
    for (AuditCriterion criterion : criterions) {
        criterion.addToQuery(enversService, versionsReader, aliasToEntityNameMap, QueryConstants.REFERENCED_ENTITY_ALIAS, qb, qb.getRootParameters());
    }
    for (final AuditAssociationQueryImpl<?> associationQuery : associationQueries) {
        associationQuery.addCriterionsToQuery(versionsReader);
    }
    Query query = buildQuery();
    // add named parameter (used for ValidityAuditStrategy and association queries)
    Collection<String> params = query.getParameterMetadata().getNamedParameterNames();
    if (params.contains(REVISION_PARAMETER)) {
        query.setParameter(REVISION_PARAMETER, revision);
    }
    List queryResult = query.list();
    return applyProjections(queryResult, revision);
}
Also used : Query(org.hibernate.query.Query) MiddleIdData(org.hibernate.envers.internal.entities.mapper.relation.MiddleIdData) AuditEntitiesConfiguration(org.hibernate.envers.configuration.internal.AuditEntitiesConfiguration) AuditCriterion(org.hibernate.envers.query.criteria.AuditCriterion) List(java.util.List)

Example 74 with Query

use of org.hibernate.query.Query in project hibernate-orm by hibernate.

the class QueryBuilder method toQuery.

public Query toQuery(Session session) {
    final StringBuilder querySb = new StringBuilder();
    final Map<String, Object> queryParamValues = new HashMap<>();
    build(querySb, queryParamValues);
    final Query query = session.createQuery(querySb.toString());
    for (Map.Entry<String, Object> paramValue : queryParamValues.entrySet()) {
        if (paramValue.getValue() instanceof RevisionType) {
            // this is needed when the ClassicQueryTranslatorFactory is used
            query.setParameter(paramValue.getKey(), paramValue.getValue(), new CustomType(new RevisionTypeType()));
        } else {
            query.setParameter(paramValue.getKey(), paramValue.getValue());
        }
    }
    return query;
}
Also used : CustomType(org.hibernate.type.CustomType) Query(org.hibernate.query.Query) HashMap(java.util.HashMap) RevisionType(org.hibernate.envers.RevisionType) RevisionTypeType(org.hibernate.envers.internal.entities.RevisionTypeType) HashMap(java.util.HashMap) Map(java.util.Map)

Example 75 with Query

use of org.hibernate.query.Query in project hibernate-orm by hibernate.

the class UpdateBuilder method toQuery.

public Query toQuery(Session session) {
    final StringBuilder querySb = new StringBuilder();
    final Map<String, Object> queryParamValues = new HashMap<>();
    build(querySb, queryParamValues);
    final Query query = session.createQuery(querySb.toString());
    for (Map.Entry<String, Object> paramValue : queryParamValues.entrySet()) {
        query.setParameter(paramValue.getKey(), paramValue.getValue());
    }
    return query;
}
Also used : Query(org.hibernate.query.Query) HashMap(java.util.HashMap) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

Query (org.hibernate.query.Query)149 Test (org.junit.Test)46 Session (org.hibernate.Session)39 List (java.util.List)24 ArrayList (java.util.ArrayList)19 TestForIssue (org.hibernate.testing.TestForIssue)19 ObjectQuery (com.evolveum.midpoint.prism.query.ObjectQuery)17 CriteriaQuery (javax.persistence.criteria.CriteriaQuery)17 HashMap (java.util.HashMap)15 Map (java.util.Map)14 NativeQuery (org.hibernate.query.NativeQuery)14 AbstractJPATest (org.hibernate.test.jpa.AbstractJPATest)11 SessionFactory (org.hibernate.SessionFactory)9 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)7 SQLException (java.sql.SQLException)7 Collectors (java.util.stream.Collectors)7 RQuery (com.evolveum.midpoint.repo.sql.query.RQuery)6 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)6 Predicate (javax.persistence.criteria.Predicate)6 Root (javax.persistence.criteria.Root)6