List of usage examples for org.hibernate.criterion Restrictions in
public static Criterion in(String propertyName, Collection values)
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(); } }