Example usage for org.hibernate.criterion Restrictions in

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

Introduction

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

Prototype

public static Criterion in(String propertyName, Collection values) 

Source Link

Document

Apply an "in" constraint to the named property.

Usage

From source file:com.dell.asm.asmcore.asmmanager.db.DiscoveryResultDAO.java

License:Open Source License

/**
 * Retrieve all from DiscoveryResultEntity.
 * @return list of entities//from  www. j  a v a  2s. c  om
 */
@SuppressWarnings("unchecked")
public List<DiscoveryResultEntity> getAllDiscoveryResult(List<SortParamParser.SortInfo> sortInfos,
        List<FilterParamParser.FilterInfo> filterInfos, PaginationInfo paginationInfo)
        throws AsmManagerDAOException {

    Session session = null;
    Transaction tx = null;
    List<DiscoveryResultEntity> entityList = new ArrayList<DiscoveryResultEntity>();

    try {

        int offset = paginationInfo.getOffset();
        int limit = paginationInfo.getLimit();
        int pageSize = limit;

        session = _dao._database.getNewSession();
        tx = session.beginTransaction();

        Criteria criteria = session.createCriteria(DiscoveryResultEntity.class);
        BaseDAO.addSortCriteria(criteria, sortInfos);

        List<FilterParamParser.FilterInfo> notFound = BaseDAO.addFilterCriteria(criteria, filterInfos,
                DiscoveryResultEntity.class);

        if (notFound != null && notFound.size() > 0) {
            criteria.createAlias("discoveryResultEntity", "discoveryResultEntityAlias");
            for (FilterParamParser.FilterInfo filterInfo : notFound) {
                criteria.add(Restrictions.eq("discoveryResultEntity.deviceKey", filterInfo.getColumnName()));
                if (filterInfo.getColumnValue().size() == 1) {
                    criteria.add(Restrictions.eq("discoveryResultEntityAlias.deviceValue",
                            filterInfo.getColumnValue().get(0)));
                } else if (filterInfo.getColumnValue().size() > 1) {
                    criteria.add(Restrictions.in("discoveryResultEntityAlias.deviceValue",
                            filterInfo.getColumnValue()));
                }
            }
        }

        //criteria.setFirstResult((pageNumber - 1) * pageSize);
        criteria.setFirstResult(offset);
        criteria.setMaxResults(pageSize);

        entityList = criteria.list();
        tx.commit();
    } catch (Exception e) {
        logger.warn("Caught exception during get all discovery entities: " + e);
        try {
            if (tx != null) {
                tx.rollback();
            }
        } catch (Exception ex) {
            logger.warn("Unable to rollback transaction during get all discovery entities: " + ex);
        }
        throw new AsmManagerDAOException("Caught exception during get all discover entities: ", e);
    } finally {
        try {
            if (session != null) {
                session.close();
            }
        } catch (Exception ex) {
            logger.warn("Unable to close session during get all discover entities: " + ex);
        }
    }

    return entityList;
}

From source file:com.dell.asm.asmcore.asmmanager.db.TemplateDAO.java

License:Open Source License

@SuppressWarnings("unchecked")
public List<TemplateEntity> getAllTemplates(List<SortParamParser.SortInfo> sortInfos,
        List<FilterParamParser.FilterInfo> filterInfos, PaginationInfo paginationInfo) {

    Session session = null;/*  ww w .j a  v a  2s.  c o  m*/
    Transaction tx = null;
    List<TemplateEntity> entityList = new ArrayList<>();

    try {
        int offset = paginationInfo.getOffset();
        int pageSize = paginationInfo.getLimit();

        session = _dao._database.getNewSession();
        tx = session.beginTransaction();

        Criteria criteria = session.createCriteria(TemplateEntity.class);
        BaseDAO.addSortCriteria(criteria, sortInfos);
        List<FilterParamParser.FilterInfo> notFound = BaseDAO.addFilterCriteria(criteria, filterInfos,
                TemplateEntity.class);

        if (notFound != null && notFound.size() > 0) {
            criteria.createAlias("templateEntity", "templateEntityAlias");
            for (FilterParamParser.FilterInfo filterInfo : notFound) {
                criteria.add(Restrictions.eq("templateEntityAlias.deviceKey", filterInfo.getColumnName()));
                if (filterInfo.getColumnValue().size() == 1) {
                    criteria.add(Restrictions.eq("templateEntityAlias.deviceValue",
                            filterInfo.getColumnValue().get(0)));
                } else if (filterInfo.getColumnValue().size() > 1) {
                    criteria.add(
                            Restrictions.in("templateEntityAlias.deviceValue", filterInfo.getColumnValue()));
                }
            }
        }

        //criteria.setFirstResult((pageNumber - 1) * pageSize);
        criteria.setFirstResult(offset);
        criteria.setMaxResults(pageSize);
        criteria.setFetchMode("policyRefEntities", FetchMode.SELECT);

        entityList = criteria.list();

        //            Collection<PolicyRefEntity> dummy;
        //            for (TemplateEntity parm : entityList) {
        //              dummy = parm.getPolicyRefEntities();
        //              dummy.isEmpty();
        //            }

        // workaround for dupliacate templates
        //entityList.addAll(buildUniqueList(criteria.list()));

        // Commit transaction.
        tx.commit();
    } catch (Exception e) {
        logger.warn("Caught exception during get all templates: " + e);
        try {
            if (tx != null) {
                tx.rollback();
            }
        } catch (Exception ex) {
            logger.warn("Unable to rollback transaction during get all templates: " + ex);
        }
        throw new AsmManagerInternalErrorException("Get All templates", "TemplateDAO", e);
    } finally {
        try {
            if (session != null) {
                session.close();
            }
        } catch (Exception ex) {
            logger.warn("Unable to close session during get all devices: " + ex);
        }
    }

    logger.warn("Template DAO get all templates size: " + entityList.size());
    return entityList;
}

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

License:Mozilla Public License

@SuppressWarnings("unchecked")
@Override// www .ja v  a  2  s.c o m
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));
    }/*from  w w  w  . ja v a 2  s  .  c  o 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.HibernateApplicationDao.java

License:Mozilla Public License

private void addFiltering(Criteria criteria, Set<Integer> teamIds, Set<Integer> appIds) {

    boolean useAppIds = appIds != null, useTeamIds = teamIds != null;

    if (teamIds != null && teamIds.isEmpty()) {
        teamIds = set(0);// w  w w .jav  a2 s  .com
    }

    if (appIds != null && appIds.isEmpty()) {
        appIds = set(0);
    }

    if (!useAppIds && !useTeamIds) {
        return;
    }

    if (useAppIds && useTeamIds) {
        criteria.add(Restrictions.eq("team.active", true))
                .add(Restrictions.or(Restrictions.in("id", appIds), Restrictions.in("team.id", teamIds)));
    } else if (useAppIds) {
        criteria.add(Restrictions.in("id", appIds));
    } else {
        criteria.add(Restrictions.in("team.id", teamIds)).add(Restrictions.eq("team.active", true));
    }

}

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

License:Mozilla Public License

@Override
public Map<String, Object> getAllVersionsByAppId(List<Integer> appIds) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Application.class);
    criteria.add(Restrictions.eq("active", true));
    criteria.createAlias("versions", "version");

    if (appIds != null)
        criteria.add(Restrictions.in("id", appIds));

    List<Application> applications = (List<Application>) criteria.list();
    Map<String, Object> map = CollectionUtils.map();
    for (Application application : applications) {
        map.put(application.getOrganization().getName() + " / " + application.getName(),
                application.getVersions());
    }/* www .  jav a2 s  .  c  o m*/

    return map;
}

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));
    }//from ww w  .  j  a v  a 2s  .  c o  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

@SuppressWarnings("unchecked")
public Criteria getScanIdAndPageCriteria(Integer scanId, int page) {

    List<Integer> mappedFindingIds = (List<Integer>) sessionFactory.getCurrentSession()
            .createQuery("select finding.id from ScanRepeatFindingMap map " + "where map.scan.id = :scanId")
            .setInteger("scanId", scanId).list();

    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Finding.class)
            .add(Restrictions.eq("active", true));

    if (mappedFindingIds != null && !mappedFindingIds.isEmpty()) {
        criteria.add(/*w w  w . j  av  a  2s .  com*/
                Restrictions.or(Restrictions.eq("scan.id", scanId), Restrictions.in("id", mappedFindingIds)));
    } else {
        criteria.add(Restrictions.eq("scan.id", scanId));
    }

    return criteria.createAlias("channelSeverity", "severity").createAlias("channelVulnerability", "vuln")
            .createAlias("surfaceLocation", "surface").setFirstResult((page - 1) * Finding.NUMBER_ITEM_PER_PAGE)
            .setMaxResults(Finding.NUMBER_ITEM_PER_PAGE).addOrder(Order.desc("severity.numericValue"))
            .addOrder(Order.asc("vuln.name")).addOrder(Order.asc("surface.path"));
}

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

License:Mozilla Public License

@Override
@SuppressWarnings("unchecked")
public List<Report> retrieveByIds(List<Integer> reportIds) {
    return (List<Report>) getAvailableCriteria().add(Restrictions.in("id", reportIds)).list();
}

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

License:Mozilla Public License

@Override
@SuppressWarnings("unchecked")
public List<Scan> retrieveByApplicationIdList(List<Integer> applicationIdList) {

    if (applicationIdList == null || applicationIdList.isEmpty()) {
        return list();
    }//  www .  ja v  a  2s. com

    List<Integer> scanIds = sessionFactory.getCurrentSession().createCriteria(Application.class)
            .add(Restrictions.in("id", applicationIdList)).createAlias("scans", "scans")
            .add(Restrictions.eq("scans.lockedMetadata", false))
            .setProjection(Projections.groupProperty("scans.id")).list();

    if (scanIds != null && !scanIds.isEmpty()) {
        return sessionFactory.getCurrentSession().createCriteria(Scan.class).add(Restrictions.in("id", scanIds))
                .list();
    } else {
        return list();
    }

}