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()));
}
}
}
}
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;
}
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);
}
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;
}
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;
}
Aggregations