.setProjection( Property.forName("name") ); gavin = ( Student ) s.createCriteria(Student.class) .add( Subqueries.exists(dc) ) .setReadOnly( true ) .uniqueResult();
@Override public Criterion toHibernateCriterion(AbstractHibernateQuery hibernateQuery, Query.Exists criterion, String alias) { DetachedCriteria detachedCriteria = toHibernateDetachedCriteria(hibernateQuery,criterion.getSubquery()); return Subqueries.exists(detachedCriteria); } });
@Override public org.grails.datastore.mapping.query.api.Criteria exists(QueryableCriteria<?> subquery) { addToCriteria(Subqueries.exists(convertToHibernateCriteria(subquery))); return this; }
Restrictions.eqProperty("s.person.personId", "p.personId")); criteria.add(Subqueries.exists(pregnancyActiveCriteria));
public List<FLOW_INSTANCE> retrieveFlowInstancesWith(FLOW_DEFINITION flowDefinition, SUser creatingUser, Boolean active) { Objects.requireNonNull(flowDefinition); Criteria c = getSession().createCriteria(getClassFlowInstance(), "PI"); c.createAlias("PI.flowVersion", "DEF"); c.add(Restrictions.eq("DEF.flowDefinition", flowDefinition)); if (active != null) { DetachedCriteria sub = DetachedCriteria.forClass(getClassTaskInstance(), "T"); sub.createAlias("T.task", "TA"); sub.add(Restrictions.eqProperty("T.flowInstance.cod", "PI.cod")); sub.add(Restrictions.isNull("T.endDate")); if (active) { sub.add(Restrictions.ne("TA.type", TaskType.END)); } else { sub.add(Restrictions.eq("TA.type", TaskType.END)); } sub.setProjection(Projections.id()); c.add(Subqueries.exists(sub)); } if (creatingUser != null) { c.add(Restrictions.eq("PI.userCreator", creatingUser)); } c.setCacheable(true).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); return c.list(); }
public List<PROCESS_INSTANCE> retrieveProcessInstancesWith(PROCESS_DEF process, MUser creatingUser, Boolean active) { Objects.requireNonNull(process); Criteria c = getSession().createCriteria(getClassProcessInstance(), "PI"); c.createAlias("PI.processVersion", "DEF"); c.add(Restrictions.eq("DEF.processDefinition", process)); if (active != null) { DetachedCriteria sub = DetachedCriteria.forClass(getClassTaskInstance(), "T"); sub.createAlias("T.task", "TA"); sub.add(Restrictions.eqProperty("T.processInstance.cod", "PI.cod")); sub.add(Restrictions.isNull("T.endDate")); if (active) { sub.add(Restrictions.ne("TA.type", TaskType.END)); } else { sub.add(Restrictions.eq("TA.type", TaskType.END)); } sub.setProjection(Projections.id()); c.add(Subqueries.exists(sub)); } if (creatingUser != null) { c.add(Restrictions.eq("PI.userCreator", creatingUser)); } c.setCacheable(true).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); return c.list(); }
public List<PROCESS_INSTANCE> retrieveProcessInstancesWith(PROCESS_DEF process, MUser creatingUser, Boolean active) { Objects.requireNonNull(process); Criteria c = getSession().createCriteria(getClassProcessInstance(), "PI"); c.createAlias("PI.processVersion", "DEF"); c.add(Restrictions.eq("DEF.processDefinition", process)); if (active != null) { DetachedCriteria sub = DetachedCriteria.forClass(getClassTaskInstance(), "T"); sub.createAlias("T.task", "TA"); sub.add(Restrictions.eqProperty("T.processInstance.cod", "PI.cod")); sub.add(Restrictions.isNull("T.endDate")); if (active) { sub.add(Restrictions.ne("TA.type", TaskType.END)); } else { sub.add(Restrictions.eq("TA.type", TaskType.END)); } sub.setProjection(Projections.id()); c.add(Subqueries.exists(sub)); } if (creatingUser != null) { c.add(Restrictions.eq("PI.userCreator", creatingUser)); } c.setCacheable(true).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); return c.list(); }
sub.setProjection(Projections.id()); c.add(Subqueries.exists(sub));
sub.setProjection(Projections.id()); c.add(Subqueries.exists(sub));
sub.setProjection(Projections.id()); c.add(Subqueries.exists(sub));
private DetachedCriteria buildhibernateQuery(Collection<String> internalIds, Session session, ProcessInstanceFilter filter, Integer offset, Integer limit) { DetachedCriteria criteria = DetachedCriteria.forClass(ProcessInstance.class, "ids"); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); //criteria.setProjection(Projections.distinct(Projections.property("id"))); criteria = criteria.add(Restrictions.in("internalId", internalIds)); if (filter.getCreatedAfter() != null) { criteria = criteria.add(Restrictions.gt("createDate", filter.getCreatedAfter())); } if (filter.getCreatedBefore() != null) { criteria = criteria.add(Restrictions.lt("createDate", filter.getCreatedBefore())); } if (filter.getCreators() != null && !filter.getCreators().isEmpty()) { criteria = criteria.add(Restrictions.in("creator", filter.getCreators())); } if (filter.getUpdatedAfter() != null) { criteria = criteria .createCriteria("processLogs") .add(Restrictions.gt("entryDate", filter.getUpdatedAfterCalendar())); } if (filter.getNotUpdatedAfter() != null) { DetachedCriteria entryDateCriteria = DetachedCriteria.forClass(ProcessInstanceLog.class).add(Restrictions.gt("entryDate", filter.getNotUpdatedAfterCalendar())); criteria = criteria .createCriteria("processLogs") .add(Restrictions.not(Subqueries.exists(entryDateCriteria))); } return criteria; }