List of usage examples for org.hibernate.criterion Restrictions isNull
public static Criterion isNull(String propertyName)
From source file:com.bluexml.side.Framework.alfresco.jbpm.CustomJBPMEngine.java
License:Open Source License
@SuppressWarnings("unchecked") private List<ProcessInstance> getProcessInstances(final Long processDefId, final Boolean active) { return (List<ProcessInstance>) jbpmTemplate.execute(new JbpmCallback() { public Object doInJbpm(JbpmContext context) { Session session = context.getSession(); Criteria criteria = session.createCriteria(ProcessInstance.class); if (processDefId != null) { Criteria definitionCriteria = criteria.createCriteria("processDefinition"); definitionCriteria.add(Restrictions.eq("id", processDefId)); }//from www .j ava 2s . com if (Boolean.TRUE.equals(active)) { criteria.add(Restrictions.isNull("end")); } else if (Boolean.FALSE.equals(active)) { criteria.add(Restrictions.isNotNull("end")); } return criteria.list(); } }); }
From source file:com.bluexml.side.Framework.alfresco.jbpm.CustomJBPMEngine.java
License:Open Source License
/** * Construct a JBPM Hibernate query based on the Task Query provided * /*from w w w . j a va 2s. co m*/ * @param session * @param query * @return jbpm hiberate query criteria */ private Criteria createTaskQueryCriteria(Session session, WorkflowTaskQuery query) { Criteria task = session.createCriteria(TaskInstance.class); // task id if (query.getTaskId() != null) { task.add(Restrictions.eq("id", getJbpmId(query.getTaskId()))); } // task state if (query.getTaskState() != null) { WorkflowTaskState state = query.getTaskState(); if (state == WorkflowTaskState.IN_PROGRESS) { task.add(Restrictions.eq("isOpen", true)); task.add(Restrictions.isNull("end")); } else if (state == WorkflowTaskState.COMPLETED) { task.add(Restrictions.eq("isOpen", false)); task.add(Restrictions.isNotNull("end")); } } // task name if (query.getTaskName() != null) { task.add(Restrictions.eq("name", query.getTaskName().toPrefixString(namespaceService))); } // task actor if (query.getActorId() != null) { task.add(Restrictions.eq("actorId", query.getActorId())); } // task custom properties if (query.getTaskCustomProps() != null) { Map<QName, Object> props = query.getTaskCustomProps(); if (props.size() > 0) { Criteria variables = task.createCriteria("variableInstances"); Disjunction values = Restrictions.disjunction(); for (Map.Entry<QName, Object> prop : props.entrySet()) { Conjunction value = Restrictions.conjunction(); value.add(Restrictions.eq("name", factory.mapQNameToName(prop.getKey()))); value.add(Restrictions.eq("value", prop.getValue().toString())); values.add(value); } variables.add(values); } } // process criteria Criteria process = createProcessCriteria(task, query); // process custom properties if (query.getProcessCustomProps() != null) { // TODO: Due to Hibernate bug // http://opensource.atlassian.com/projects/hibernate/browse/HHH-957 // it's not possible to perform a sub-select with the criteria api. // For now issue a // secondary query and create an IN clause. Map<QName, Object> props = query.getProcessCustomProps(); if (props.size() > 0) { // create criteria for process variables Criteria variables = session.createCriteria(VariableInstance.class); variables.setProjection(Projections.distinct(Property.forName("processInstance"))); Disjunction values = Restrictions.disjunction(); for (Map.Entry<QName, Object> prop : props.entrySet()) { Conjunction value = Restrictions.conjunction(); value.add(Restrictions.eq("name", factory.mapQNameToName(prop.getKey()))); value.add(Restrictions.eq("value", prop.getValue().toString())); values.add(value); } variables.add(values); // note: constrain process variables to same criteria as tasks createProcessCriteria(variables, query); Disjunction processIdCriteria = createProcessIdCriteria(variables); // constrain tasks by process list process = (process == null) ? task.createCriteria("processInstance") : process; process.add(processIdCriteria); } } // order by if (query.getOrderBy() != null) { WorkflowTaskQuery.OrderBy[] orderBy = query.getOrderBy(); for (WorkflowTaskQuery.OrderBy orderByPart : orderBy) { if (orderByPart == WorkflowTaskQuery.OrderBy.TaskActor_Asc) { task.addOrder(Order.asc("actorId")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskActor_Desc) { task.addOrder(Order.desc("actorId")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskCreated_Asc) { task.addOrder(Order.asc("create")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskCreated_Desc) { task.addOrder(Order.desc("create")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskDue_Asc) { task.addOrder(Order.asc("dueDate")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskDue_Desc) { task.addOrder(Order.desc("dueDate")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskId_Asc) { task.addOrder(Order.asc("id")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskId_Desc) { task.addOrder(Order.desc("id")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskName_Asc) { task.addOrder(Order.asc("name")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskName_Desc) { task.addOrder(Order.desc("name")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskState_Asc) { task.addOrder(Order.asc("end")); } else if (orderByPart == WorkflowTaskQuery.OrderBy.TaskState_Desc) { task.addOrder(Order.desc("end")); } } } // limit results if (query.getLimit() != -1) { task.setMaxResults(query.getLimit()); } return task; }
From source file:com.bluexml.side.Framework.alfresco.jbpm.CustomJBPMEngine.java
License:Open Source License
/** * Create process-specific query criteria * //from w w w . ja va 2 s. c o m * @param root * @param query * @return */ private Criteria createProcessCriteria(Criteria root, WorkflowTaskQuery query) { Criteria process = null; // process active? if (query.isActive() != null) { process = root.createCriteria("processInstance"); if (query.isActive()) { process.add(Restrictions.isNull("end")); } else { process.add(Restrictions.isNotNull("end")); } } // process id if (query.getProcessId() != null) { process = (process == null) ? root.createCriteria("processInstance") : process; process.add(Restrictions.eq("id", getJbpmId(query.getProcessId()))); } // process definition name String definitionName = query.getWorkflowDefinitionName(); if (definitionName != null) { definitionName = createLocalId(definitionName); } if (definitionName == null) { QName qName = query.getProcessName(); definitionName = qName == null ? null : qName.toPrefixString(namespaceService); } if (definitionName != null) { process = (process == null) ? root.createCriteria("processInstance") : process; Criteria processDef = process.createCriteria("processDefinition"); String processName = tenantService.getName(definitionName); processDef.add(Restrictions.eq("name", processName)); } return process; }
From source file:com.book.identification.rest.CategoryResource.java
License:Apache License
@GET @Produces(MediaType.APPLICATION_JSON)//from w ww .j a v a2 s .c om public Response parentCategories() { List<Category> findAll = DAOFactory.getInstance().getCategoryDAO() .findByCriteria(Restrictions.isNull("parent")); Categories categories = new Categories(); categories.setCategories(findAll); return Response.ok(categories).build(); }
From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java
License:Apache License
private void addCurrentSampleFilters(DetachedCriteria criteria, List<Integer> studyIdList) { if (studyIdList != null) { if (studyIdList.size() > 0) criteria.add(Restrictions.in("labstudyid", studyIdList)); else/*from w ww. j ava2 s . c o m*/ criteria.add(Restrictions.isNull("labstudyid")); } }
From source file:com.cimmyt.model.dao.impl.StorageLocationDAOImpl.java
License:Apache License
@Override protected void buildCriteria(DetachedCriteria criteria, StorageLocation filter) { if (filter.getImslocid() != null) { criteria.add(Restrictions.eq("imslocidparent", filter.getImslocid())); } else if (filter.getImslocid() == null) { criteria.add(Restrictions.isNull("imslocidparent")); }/*from w w w.j a v a 2s. c om*/ }
From source file:com.codefupanda.persistor.util.HibernateUtil.java
License:Open Source License
private static Criterion convert(NullCriteria criteria) { if (criteria.isNull()) { return Restrictions.isNull(criteria.getProperty()); }// www .j av a 2 s . c o m return Restrictions.isNotNull(criteria.getProperty()); }
From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateApplicationDao.java
License:Mozilla Public License
@Override public long getUnmappedFindingCount(Integer appId) { Long result = (Long) sessionFactory.getCurrentSession().createCriteria(Finding.class) .add(Restrictions.isNull("vulnerability")).createAlias("scan", "scanAlias") .createAlias("scanAlias.application", "applicationAlias") .add(Restrictions.eq("applicationAlias.id", appId)).setProjection(Projections.rowCount()) .uniqueResult();//from w w w .jav a 2 s .c o m return result == null ? 0 : result; }
From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateEventDao.java
License:Mozilla Public License
private Criteria getEventCriteria(List<String> eventActions, User user, Date startTime, Date stopTime, Set<Integer> appIds, Set<Integer> teamIds, Set<Integer> vulnIds, Set<Integer> defectIds) { Criteria criteria = getSession().createCriteria(getClassReference()).add(Restrictions.eq("active", true)); criteria.createAlias("scan", "scan", Criteria.LEFT_JOIN); criteria.createAlias("application", "application", Criteria.LEFT_JOIN); criteria.createAlias("application.organization", "application.organization", Criteria.LEFT_JOIN); criteria.createAlias("vulnerability", "vulnerability", Criteria.LEFT_JOIN); criteria.createAlias("defect", "defect", Criteria.LEFT_JOIN); if ((eventActions != null) && (!eventActions.isEmpty())) { criteria.add(Restrictions.in("eventAction", eventActions)); }/* w w w .j a va 2 s . co m*/ if (user != null) { criteria.add(Restrictions.eq("user", user)); } if (startTime != null) { criteria.add(Restrictions.ge("date", startTime)); } if (stopTime != null) { criteria.add(Restrictions.lt("date", stopTime)); } Criterion associationRestrictions = null; if ((appIds != null) && (!appIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions.in("application.id", appIds)); } if ((teamIds != null) && (!teamIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions.in("application.organization.id", teamIds)); } if ((vulnIds != null) && (!vulnIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions.in("vulnerability.id", vulnIds)); if ((defectIds != null) && (!defectIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions .and(Restrictions.in("defect.id", defectIds), Restrictions.isNull("vulnerability.id"))); } } else if ((defectIds != null) && (!defectIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions.in("defect.id", defectIds)); } if (associationRestrictions != null) { criteria.add(associationRestrictions); } Order order = getOrder(); if (order != null) { criteria.addOrder(order); } return criteria; }
From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateFindingDao.java
License:Mozilla Public License
@Override public Object retrieveUnmappedFindingsByScanIdAndPage(Integer scanId, int page) { return getScanIdAndPageCriteria(scanId, page).add(Restrictions.isNull("vulnerability")).list(); }