Example usage for org.hibernate.criterion Projections alias

List of usage examples for org.hibernate.criterion Projections alias

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections alias.

Prototype

public static Projection alias(Projection projection, String alias) 

Source Link

Document

Assign an alias to a projection, by wrapping it

Usage

From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateApplicationDao.java

License:Mozilla Public License

@SuppressWarnings("unchecked")
@Override//w  w  w. j a  v a2  s .  c om
public List<Integer> getTopXVulnerableAppsFromList(int numApps, List<Integer> teamIdList,
        List<Integer> applicationIdList, List<Integer> tagIdList, List<Integer> vulnTagIdList) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Application.class);
    criteria.createAlias("vulnerabilities", "vulnerability");
    criteria.add(Restrictions.eq("active", true));
    criteria.add(Restrictions.eq("vulnerability.active", true));
    criteria.add(Restrictions.eq("vulnerability.hidden", false));
    criteria.add(Restrictions.eq("vulnerability.isFalsePositive", false));

    if (vulnTagIdList.size() > 0) {
        criteria.createAlias("vulnerability.tags", "tags");
        criteria.add(Restrictions.in("tags.id", vulnTagIdList));
    }

    if (teamIdList.isEmpty() || applicationIdList.isEmpty()) {
        if (!applicationIdList.isEmpty()) {
            criteria.add(Restrictions.in("id", applicationIdList));
        }

        if (!teamIdList.isEmpty()) {
            criteria.add(Restrictions.in("organization.id", teamIdList));
        }
    } else {
        criteria.add(Restrictions.or(Restrictions.in("id", applicationIdList),
                Restrictions.in("organization.id", teamIdList)));
    }
    if (!tagIdList.isEmpty()) {
        criteria.createAlias("tags", "tag");
        criteria.add(Restrictions.in("tag.id", tagIdList));
    }

    criteria.setProjection(Projections.projectionList().add(Projections.groupProperty("id"))
            .add(Projections.alias(Projections.countDistinct("vulnerability.id"), "vulnCount")));
    criteria.addOrder(Order.desc("vulnCount"));

    List<Integer> list = list();
    List results = criteria.list();
    int i = 0;
    for (Object result : results) {
        if (i++ >= numApps) {
            break;
        }
        Object[] resultArray = (Object[]) result;
        list.add((Integer) resultArray[0]);
    }

    if (list.isEmpty())
        list = Arrays.asList(-1);
    return list;
}

From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateApplicationDao.java

License:Mozilla Public License

@Override
public List<Map<String, Object>> retrieveAppsInfoMap(List<Integer> applicationIdList,
        List<Integer> vulnTagIds) {

    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Application.class);

    criteria.createAlias("vulnerabilities", "vulnerability");
    criteria.createAlias("organization", "team");
    criteria.add(Restrictions.eq("active", true));
    criteria.add(Restrictions.eq("vulnerability.active", true));
    criteria.add(Restrictions.eq("vulnerability.isFalsePositive", false));
    criteria.createAlias("vulnerability.genericSeverity", "severity");

    if (applicationIdList.size() > 0) {
        criteria.add(Restrictions.in("id", applicationIdList));
    }//ww  w.  ja  v  a 2 s . co  m

    if (vulnTagIds.size() > 0) {
        criteria.createAlias("vulnerability.tags", "tags");
        criteria.add(Restrictions.in("tags.id", vulnTagIds));
    }

    criteria.setProjection(Projections.projectionList().add(Projections.groupProperty("id"), "appId")
            .add(Projections.groupProperty("name"), "appName")
            .add(Projections.groupProperty("team.id"), "teamId")
            .add(Projections.groupProperty("team.name"), "teamName")
            .add(Projections.groupProperty("severity.intValue"), "severityIntValue")
            .add(Projections.groupProperty("severity.name"), "severityNameValue")
            .add(Projections.alias(Projections.countDistinct("vulnerability.id"), "vulnCount")));
    criteria.addOrder(Order.desc("vulnCount"));
    criteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

    List results = criteria.list();
    return results;
}

From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateVulnerabilitySearchDao.java

License:Mozilla Public License

@Override
public List<Map> getScanComparison(VulnerabilitySearchParameters parameters, boolean isFalsePositive) {
    assert parameters != null;
    List<Integer> idList = getVulnIdList(parameters);

    if (idList.isEmpty())
        return list();

    Session session = sessionFactory.getCurrentSession();

    List<Map> fullList = list();

    // TODO refactor this to reduce duplication or remove the need for it
    int current = 0;
    while (current < idList.size()) {

        int start = current, end = current + 500;
        if (end > idList.size()) {
            end = idList.size();// www  . java  2 s. co m
        }

        List<Integer> thisPage = idList.subList(start, end);

        Criteria criteria = session.createCriteria(Vulnerability.class);

        criteria.createAlias("findings", "finding");
        criteria.createAlias("finding.scan", "scan");
        criteria.createAlias("scan.applicationChannel", "applicationChannel");
        criteria.createAlias("applicationChannel.channelType", "channelType");
        criteria.add(Restrictions.in("id", thisPage));

        ProjectionList projectionList = Projections.projectionList()
                .add(Projections.groupProperty("channelType.name"), "channelName")
                .add(Projections.alias(Projections.countDistinct("id"), "foundCount"));

        if (!isFalsePositive) {
            projectionList.add(Projections.groupProperty("foundHAMEndpoint"), "foundHAMEndpoint");
        }
        criteria.setProjection(projectionList);
        criteria.addOrder(Order.desc("foundCount"));
        criteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);

        List results = (List<Map>) criteria.list();
        fullList.addAll(results);

        current += 500;
    }

    return fullList;

}

From source file:com.ihsolution.hqipo.dao.utils.QueryHelper.java

License:Open Source License

public void applyOrderBy() throws Exception {
    if (!doOrder)
        return;//from  ww w  .  j av a2  s  . com
    if (dto == null)
        throw new Exception("dto is null");
    Map<String, Boolean> sortBy = dto.getSortByMap();
    //      logger.debug("order by Map size="+sortBy.size());
    if ((this.orderBy == null || "".equals(orderBy)) && !dto.isSortByMap()) {
        return;
    }
    // Map has highest priority
    if (dto.isSortByMap()) {
        for (Map.Entry<String, Boolean> entry : sortBy.entrySet()) {
            String alias = this.createAliases(entry.getKey());
            if (logger.isDebugEnabled())
                logger.debug("Using sortByMap order by = " + alias);
            if (entry.getValue())
                detCriteria.addOrder(Order.asc(alias).ignoreCase());
            else
                detCriteria.addOrder(Order.desc(alias).ignoreCase());
        }
        return;
    }
    // if we have arithmetic operators, checking only for plus for now
    if (orderBy.contains("+")) {

        String[] fields = orderBy.split("\\+");
        if (fields.length > 1) {
            String sql = this.createSqlAliasAndField(fields[0]) + "+" + this.createSqlAliasAndField(fields[1])
                    + " as sF";
            detCriteria.setProjection(Projections.projectionList()
                    .add(Projections.alias(Projections.sqlProjection(sql, new String[] { "sF" },
                            new Type[] { Hibernate.INTEGER }), "sumF"))
                    .add(Projections.sqlProjection("this_.*",
                            new String[] { this.targetClass.getSimpleName() + "_id" },
                            new Type[] { Hibernate.entity(this.targetClass) })));
            detCriteria.addOrder(Order.desc("sumF"));
            if (fields.length > 2) {
                String alias = this.createAliases(fields[2]);
                detCriteria.addOrder(Order.asc(alias).ignoreCase());
            }
            return;
        }
    }
    if (orderBy != null && !"".equals(orderBy)) {
        String[] obs = orderBy.split(";");
        for (String ob : obs) {
            String alias = this.createAliases(ob);
            if (logger.isDebugEnabled())
                logger.debug("order by = " + alias);
            if (asc)
                detCriteria.addOrder(Order.asc(alias).ignoreCase());
            else
                detCriteria.addOrder(Order.desc(alias).ignoreCase());
        }
    }
}

From source file:com.liferay.portal.dao.orm.hibernate.ProjectionFactoryImpl.java

License:Open Source License

public Projection alias(Projection projection, String alias) {
    ProjectionImpl projectionImpl = (ProjectionImpl) projection;

    return new ProjectionImpl(Projections.alias(projectionImpl.getWrappedProjection(), alias));
}

From source file:com.mg.framework.support.orm.GenericProjectionImpl.java

License:Open Source License

public Projection as(String alias) {
    return new GenericProjectionImpl(Projections.alias(this.hibernateProjection, alias));
}

From source file:com.qcadoo.model.api.search.SearchProjections.java

License:Open Source License

/**
 * Wraps projection with aliased projection.
 * //from   ww w  . ja  v  a  2 s .  co m
 * @param projection
 *            projection
 * @param alias
 *            alias
 * @return aliased projection
 */
public static SearchProjection alias(final SearchProjection projection, final String alias) {
    return new SearchProjectionImpl(Projections.alias(projection.getHibernateProjection(), alias));
}

From source file:fr.insalyon.creatis.vip.application.server.dao.hibernate.SimulationStatsData.java

License:Open Source License

@Override
public List<String> getBySimulationID(List<String> simulationID) throws DAOException {
    //System.out.println("Calling SimulationStatsData: getBySimuID");
    List<String> result = new ArrayList<String>();
    try {/*from   w  ww .  j  a  v a  2 s . co  m*/
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        Criteria criteria = session.createCriteria(Stats.class);

        // 'workflowID' is the variable in the class Stats
        //criteria.add(Restrictions.eq("workflowID", simulationID));
        criteria.add(Restrictions.in("workflowID", simulationID));
        //criteria.addOrder(Order.desc("workflowID"));

        ProjectionList p = Projections.projectionList();
        //p.add(Projections.sum("completed"));
        p.add(Projections.alias(Projections.sum("completed"), "sumCompleted"));
        p.add(Projections.alias(Projections.sum("completedWaitingTime"), "sumCompletedWaitingTime"));
        p.add(Projections.alias(Projections.sum("completedExecutionTime"), "sumCompletedExecutionTime"));
        p.add(Projections.alias(Projections.sum("completedInputTime"), "sumCompletedInputTime"));
        p.add(Projections.alias(Projections.sum("completedOutputTime"), "sumCompletedOutputTime"));
        p.add(Projections.sum("cancelled"));
        p.add(Projections.sum("cancelledWaitingTime"));
        p.add(Projections.sum("cancelledExecutionTime"));
        p.add(Projections.sum("cancelledInputTime"));
        p.add(Projections.sum("cancelledOutputTime"));
        p.add(Projections.sum("failedApplication"));
        p.add(Projections.sum("failedApplicationWaitingTime"));
        p.add(Projections.sum("failedApplicationExecutionTime"));
        p.add(Projections.sum("failedApplicationInputTime"));
        p.add(Projections.sum("failedApplicationOutputTime"));
        p.add(Projections.sum("failedInput"));
        p.add(Projections.sum("failedInputWaitingTime"));
        p.add(Projections.sum("failedInputExecutionTime"));
        p.add(Projections.sum("failedInputInputTime"));
        p.add(Projections.sum("failedInputOutputTime"));
        p.add(Projections.sum("failedOutput"));
        p.add(Projections.sum("failedOutputWaitingTime"));
        p.add(Projections.sum("failedOutputExecutionTime"));
        p.add(Projections.sum("failedOutputInputTime"));
        p.add(Projections.sum("failedOutputOutputTime"));
        p.add(Projections.sum("failedStalled"));
        p.add(Projections.sum("failedStalledWaitingTime"));
        p.add(Projections.sum("failedStalledExecutionTime"));
        p.add(Projections.sum("failedStalledInputTime"));
        p.add(Projections.sum("failedStalledOutputTime"));

        criteria.setProjection(p);
        List l = criteria.list();
        session.getTransaction().commit();
        session.close();

        Iterator it = l.iterator();
        while (it.hasNext()) {
            Object ob[] = (Object[]) it.next();
            /*
            for (int i = 0; i < ob.length; i++) {
            System.out.println("Object " + i + " is " + ob[i]);
            if (ob[i] != null) {
            result.add(String.valueOf(ob[i]));
            }
            }
             * 
             */
            if (ob.length >= 30) {
                result.add("Completed Jobs##" + String.valueOf(ob[0]) + "");
                result.add("CompletedJobs WaitingTime##" + String.valueOf(ob[1]) + "");
                result.add("CompletedJobs ExecutionTime##" + String.valueOf(ob[2]) + "");
                result.add("CompletedJobs InputTime##" + String.valueOf(ob[3]) + "");
                result.add("CompletedJobs OutputTime##" + String.valueOf(ob[4]) + "");
                result.add("Cancelled Jobs##" + String.valueOf(ob[5]) + "");
                result.add("CancelledJobs WaitingTime##" + String.valueOf(ob[6]) + "");
                result.add("CancelledJobs ExecutionTime##" + String.valueOf(ob[7]) + "");
                result.add("CancelledJobs InputTime##" + String.valueOf(ob[8]) + "");
                result.add("CancelledJobs OutputTime##" + String.valueOf(ob[9]) + "");
                result.add("failedApplication Jobs##" + String.valueOf(ob[10]) + "");
                result.add("failedApplicationJobs WaitingTime##" + String.valueOf(ob[11]) + "");
                result.add("failedApplicationJobs ExecutionTime##" + String.valueOf(ob[12]) + "");
                result.add("failedApplicationJobs InputTime##" + String.valueOf(ob[13]) + "");
                result.add("failedApplicationJobs OutputTime##" + String.valueOf(ob[14]) + "");
                result.add("failedInput Jobs##" + String.valueOf(ob[15]) + "");
                result.add("failedInputJobs WaitingTime##" + String.valueOf(ob[16]) + "");
                result.add("failedInputJobs ExecutionTime##" + String.valueOf(ob[17]) + "");
                result.add("failedInputJobs InputTime##" + String.valueOf(ob[18]) + "");
                result.add("failedInputJobs OutputTime##" + String.valueOf(ob[19]) + "");
                result.add("failedInput Jobs##" + String.valueOf(ob[15]) + "");
                result.add("failedInputJobs WaitingTime##" + String.valueOf(ob[16]) + "");
                result.add("failedInputJobs ExecutionTime##" + String.valueOf(ob[17]) + "");
                result.add("failedInputJpbs InputTime##" + String.valueOf(ob[18]) + "");
                result.add("failedInputJobs OutputTime##" + String.valueOf(ob[19]) + "");
                result.add("failedOutput Jobs##" + String.valueOf(ob[20]) + "");
                result.add("failedOutputJobs WaitingTime##" + String.valueOf(ob[21]) + "");
                result.add("failedOutputJobs ExecutionTime##" + String.valueOf(ob[22]) + "");
                result.add("failedOutputJobs InputTime##" + String.valueOf(ob[23]) + "");
                result.add("failedOutputJobs OutputTime##" + String.valueOf(ob[24]) + "");
                result.add("failedStalled Jobs##" + String.valueOf(ob[25]) + "");
                result.add("failedStalledJobs WaitingTime##" + String.valueOf(ob[26]) + "");
                result.add("failedStalledJobs ExecutionTime##" + String.valueOf(ob[27]) + "");
                result.add("failedStalledJobs InputTime##" + String.valueOf(ob[28]) + "");
                result.add("failedStalledJobs OutputTime##" + String.valueOf(ob[29]) + "");
            } else {
                throw new DAOException("getBySimulationID: Not enough data");
            }

        }

        return result;
    } catch (HibernateException ex) {
        throw new DAOException(ex);

    }

}

From source file:fr.insalyon.creatis.vip.application.server.dao.hibernate.SimulationStatsData.java

License:Open Source License

@Override
public List<String> getWorkflowsPerUser(List<String> workflowsId) throws WorkflowsDBDAOException {
    List<String> result = new ArrayList<String>();
    try {//from   ww w.j  av a  2  s  . c  o m
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        Criteria criteria = session.createCriteria(Workflow.class);
        criteria.add(Restrictions.in("id", workflowsId));

        ProjectionList p = Projections.projectionList();
        p.add(Projections.groupProperty("username"));
        p.add(Projections.property("username"));
        p.add(Projections.alias(Projections.count("status"), "nbWfls"));

        //p.add(Projections.count("status"));
        criteria.setProjection(p);
        criteria.addOrder(Order.desc("nbWfls"));
        List l = criteria.list();
        session.getTransaction().commit();
        session.close();

        Iterator it = l.iterator();
        while (it.hasNext()) {
            Object ob[] = (Object[]) it.next();
            if (ob[0] != null && ob[1] != null) {
                result.add(String.valueOf(ob[0]) + "##" + String.valueOf(ob[2]));
            }
        }

        return result;
    } catch (HibernateException ex) {
        throw new WorkflowsDBDAOException(ex);
    }
}

From source file:fr.insalyon.creatis.vip.application.server.dao.hibernate.SimulationStatsData.java

License:Open Source License

@Override
public List<String> getApplications(List<String> workflowsId) throws WorkflowsDBDAOException {
    List<String> result = new ArrayList<String>();
    try {/*from ww w  .j  a  v  a 2 s .c  o  m*/
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        Criteria criteria = session.createCriteria(Workflow.class);
        criteria.add(Restrictions.in("id", workflowsId));

        ProjectionList p = Projections.projectionList();
        p.add(Projections.groupProperty("application"));
        p.add(Projections.property("application"));
        p.add(Projections.alias(Projections.count("status"), "nbWfls"));
        criteria.setProjection(p);
        criteria.setProjection(p);
        criteria.addOrder(Order.desc("nbWfls"));
        List l = criteria.list();

        session.getTransaction().commit();
        session.close();

        Iterator it = l.iterator();
        while (it.hasNext()) {
            Object ob[] = (Object[]) it.next();
            if (ob[0] != null && ob[1] != null) {
                result.add(String.valueOf(ob[0]) + "##" + String.valueOf(ob[2]));
            }

        }
        return result;
    } catch (HibernateException ex) {
        throw new WorkflowsDBDAOException(ex);
    }
    //System.out.println("getApplications, first result is " + result.get(0).toString());
}