Example usage for org.hibernate.criterion Restrictions isNull

List of usage examples for org.hibernate.criterion Restrictions isNull

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions isNull.

Prototype

public static Criterion isNull(String propertyName) 

Source Link

Document

Apply an "is null" constraint to the named property

Usage

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