Example usage for org.hibernate.criterion Projections property

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

Introduction

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

Prototype

public static PropertyProjection property(String propertyName) 

Source Link

Document

A property value projection

Usage

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

License:Mozilla Public License

private void addChannelTypeRestrictions() {

    // Limit scanner if present
    if (parameters.getChannelTypes() != null && !parameters.getChannelTypes().isEmpty()) {
        List<Integer> channelTypeIds = list();
        for (ChannelType channelType : parameters.getChannelTypes()) {
            if (channelType.getId() != null) {
                channelTypeIds.add(channelType.getId());
            }//ww  w. j  a v a  2  s  .c om
        }

        if (!channelTypeIds.isEmpty()) {
            Criteria subCriteria = session.createCriteria(Finding.class);

            subCriteria.createAlias("scan", "myScan");
            subCriteria.createAlias("myScan.applicationChannel", "myApplicationChannel");
            subCriteria.createAlias("myApplicationChannel.channelType", "myChannelType");

            subCriteria.add(Restrictions.in("myChannelType.id", channelTypeIds));

            subCriteria.setProjection(Projections.property("vulnerability.id"));

            List<Integer> ids = (List<Integer>) subCriteria.list();

            if (ids.isEmpty()) {
                LOG.debug("Got no valid Scanner type IDs.");
                ids.add(0); // should yield no results
                // throw an exception here?
            } else {
                LOG.debug("Adding scanner restriction: " + channelTypeIds);
            }

            criteria.add(Restrictions.in("id", ids));
        }
    }
}

From source file:com.eharmony.matching.seeking.translator.hibernate.HibernateQueryTranslator.java

License:Apache License

@Override
public <T, R> Projection translateProjection(Query<T, R> query) {
    if (query.getReturnFields().size() > 0) {
        ProjectionList projectionList = Projections.projectionList();
        for (String returnField : query.getReturnFields()) {
            projectionList.add(Projections.property(returnField));
        }// w  w w  .  ja v a  2s  . c  o  m
        return projectionList;
    } else {
        return null;
    }
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * This API will fetch all the unc folder paths.
 * //from w  w w . ja v a 2  s .com
 * @return List<String>
 */
@Override
public List<String> getAllUNCFolderPaths() {
    DetachedCriteria criteria = criteria();
    criteria.setProjection(Projections.property(UNC_FOLDER));
    return find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * API to get the list of Batch Classes specifying startindex, no of results and sorting if any.
 * /* w w  w . j  a v a 2 s.  co  m*/
 * @param firstResult int
 * @param maxResults int 
 * @param order List<Order>
 * @param userRoles Set<String>
 * @return List of batch class.
 */
@Override
public List<BatchClass> getBatchClassList(final int firstResult, final int maxResults, final List<Order> order,
        final Set<String> userRoles) {
    EphesoftCriteria criteria = criteria();
    List<BatchClass> batchClassList = null;
    if (userRoles == null) {
        batchClassList = new ArrayList<BatchClass>(0);
    } else {
        List<String> roleList = new ArrayList<String>();
        for (String userRole : userRoles) {
            if (null == userRole || userRole.isEmpty()) {
                continue;
            }
            roleList.add(userRole);
        }
        DetachedCriteria detachedCriteria = criteria();
        detachedCriteria.createAlias(ASSIGNED_GROUPS, ASSIGNED_GROUPS);
        detachedCriteria.add(Restrictions.in(ASSIGNED_GROUPS_NAME, roleList));
        detachedCriteria.setProjection(Projections.distinct(Projections.property(BATCH_ID)));
        criteria.add(Subqueries.propertyIn(BATCH_ID, detachedCriteria));
        criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
        batchClassList = find(criteria, firstResult, maxResults, order.toArray(new Order[order.size()]));
    }
    return batchClassList;
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * API to fetch the UNC folders for a batch class by name.
 * //from   ww w .  j  av a 2 s . c  o  m
 * @param batchClassName {@link String}
 * @return List<String>
 */
@Override
public List<String> getAllAssociatedUNCFolders(String batchClassName) {
    DetachedCriteria criteria = criteria();
    criteria.setProjection(Projections.property(UNC_FOLDER));
    criteria.add(Restrictions.eq(NAME, batchClassName));
    criteria.addOrder(org.hibernate.criterion.Order.asc(IDENTIFIER));
    criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
    return this.find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * API to get batch class identifier by UNC folder.
 * /*from   w  w w .j  a  v a  2s  .  c o  m*/
 * @param uncFolder {@link String}
 * @return {@link String}
 */
@Override
public String getBatchClassIdentifierByUNCfolder(String uncFolder) {
    DetachedCriteria criteria = criteria();
    criteria.setProjection(Projections.property(IDENTIFIER));
    criteria.add(Restrictions.eq(UNC_FOLDER, uncFolder));
    criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
    return this.findSingle(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * This API returns list of all batch class identifiers.
 * /*from   w  w  w .j  av a2  s. c  o m*/
 * @return List<String>
 */
@Override
public List<String> getAllBatchClassIdentifiers() {
    DetachedCriteria criteria = criteria();
    criteria.setProjection(Projections.property(IDENTIFIER));
    criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
    return this.find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * API to get all the UNC folders on the basis of excluding the deleted batch class.
 * // w  w w .j  av  a2s. c om
 * @param isExcludeDeleted {@link Boolean}
 * @return {@link List}<{@link String}>
 */
@Override
public List<String> getAllUNCList(boolean isExcludeDeleted) {
    DetachedCriteria criteria = criteria();
    if (isExcludeDeleted) {
        criteria.add(Restrictions.or(Restrictions.isNull(IS_DELETED), Restrictions.eq(IS_DELETED, false)));
    }
    criteria.setProjection(Projections.property(UNC_FOLDER));
    return this.find(criteria);
}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDaoImpl.java

License:Open Source License

/**
 * API to fetch the system folder for the given batch class identifier.
 * /* w  w  w  .  java2 s  .c  o m*/
 * @param batchClassIdentifier {@link String}
 * @return {@link String} the system folder path.
 */
@Override
public String getSystemFolderForBatchClassIdentifier(String batchClassIdentifier) {
    EphesoftCriteria criteria = criteria();
    criteria.add(Restrictions.eq(IDENTIFIER, batchClassIdentifier));
    criteria.setProjection(Projections.property(SYSTEM_FOLDER));
    return findSingle(criteria);

}

From source file:com.ephesoft.dcma.da.dao.hibernate.BatchClassDynamicPluginConfigDaoImpl.java

License:Open Source License

/**
 * To get all Dynamic Plugin Properties for Batch instance.
 * //from w  ww  .  ja  v  a  2 s  .  co m
 * @param batchClassIdentifier String
 * @return List<BatchClassDynamicPluginConfig>
 */
@Override
public List<BatchClassDynamicPluginConfig> getAllDynamicPluginPropertiesForBatchInstance(
        String batchInstanceIdentifier) {
    DetachedCriteria criteria = criteria();
    criteria.createAlias(BATCH_CLASS_PLUGIN, BATCH_CLASS_PLUGIN);
    criteria.createAlias(BATCH_CLASS_PLUGIN_BATCH_CLASS_MODULE, BATCH_CLASS_MODULE);
    criteria.createAlias("batchClassModule.batchClass", BATCH_CLASS);

    DetachedCriteria subQuery = criteria(BatchInstance.class);
    subQuery.add(Restrictions.eq("identifier", batchInstanceIdentifier));
    subQuery.setProjection(Projections.property("batchClass.id"));

    criteria.add(Subqueries.propertyEq("batchClass.id", subQuery));

    return find(criteria);
}