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.creativity.repository.LancamentosFinanceiros.java

public List<Financeiro> filtradosAguardandoPagamento(FinanceiroFilter filtro) {

    Session session = this.manager.unwrap(Session.class);

    Criteria criteria = session.createCriteria(Financeiro.class)
            // fazemos uma associao (join) com cliente e nomeamos como "c"

            // fazemos uma associao (join) com vendedor e nomeamos como "v"
            .createAlias("ficha", "f");

    if (filtro.getNumeroDe() != null) {
        // id deve ser maior ou igual (ge = greater or equals) a filtro.numeroDe
        criteria.add(Restrictions.ge("id", filtro.getNumeroDe()));
    }/*from w  w  w .j a  va2  s . co m*/

    if (filtro.getNumeroAte() != null) {
        // id deve ser menor ou igual (le = lower or equal) a filtro.numeroDe
        criteria.add(Restrictions.le("id", filtro.getNumeroAte()));
    }

    if (filtro.getDataCriacaoDe() != null) {
        criteria.add(Restrictions.ge("dataLancamento", filtro.getDataCriacaoDe()));
    }

    if (filtro.getDataCriacaoAte() != null) {
        criteria.add(Restrictions.le("dataLancamento", filtro.getDataCriacaoAte()));
    }

    if (StringUtils.isNotBlank(filtro.getNomeCliente())) {
        // acessamos o nome do vendedor associado ao pedido pelo alias "v", criado anteriormente
        criteria.add(Restrictions.ilike("f.nomeRazao", filtro.getNomeCliente(), MatchMode.ANYWHERE));
    }

    if (StringUtils.isNotBlank(filtro.getNomeCliente())) {
        // acessamos o nome do vendedor associado ao pedido pelo alias "v", criado anteriormente
        criteria.add(Restrictions.ilike("f.nomeRazao", filtro.getNomeCliente(), MatchMode.ANYWHERE));
    }

    if (filtro.getStatusDocFinanceiro() != null && filtro.getStatusDocFinanceiro().length > 0) {
        // adicionamos uma restrio "in", passando um array de constantes da enum StatusPedido
        criteria.add(Restrictions.in("statusFinanceiro", filtro.getStatusDocFinanceiro()));
    }

    if (filtro.getGestor() != null) {
        // id deve ser maior ou igual (ge = greater or equals) a filtro.numeroDe
        criteria.add(Restrictions.eq("f.gestor.id", filtro.getGestor()));
    }

    return criteria.addOrder(Order.asc("id")).list();
}

From source file:com.creativity.repository.LancamentosFinanceiros.java

public List<Financeiro> filtradosAguardandoPagamentoPorGestor(FinanceiroFilter filtro) {

    Long usuarioGestorLogado = null;

    UsuarioSistema usuarioLogado = getUsuarioLogado();

    if (usuarioLogado != null) {
        usuarioGestorLogado = usuarioLogado.getUsuario().getId();

    }//from   w w w  .  j  av  a2s .  c o m

    Session session = this.manager.unwrap(Session.class);

    Criteria criteria = session.createCriteria(Financeiro.class)
            // fazemos uma associao (join) com cliente e nomeamos como "c"

            // fazemos uma associao (join) com vendedor e nomeamos como "v"
            .createAlias("ficha", "f").add(Restrictions.eq("f.gestor.id", usuarioGestorLogado));

    if (filtro.getNumeroDe() != null) {
        // id deve ser maior ou igual (ge = greater or equals) a filtro.numeroDe
        criteria.add(Restrictions.ge("id", filtro.getNumeroDe()));
    }

    if (filtro.getNumeroAte() != null) {
        // id deve ser menor ou igual (le = lower or equal) a filtro.numeroDe
        criteria.add(Restrictions.le("id", filtro.getNumeroAte()));
    }

    if (filtro.getDataCriacaoDe() != null) {
        criteria.add(Restrictions.ge("dataLancamento", filtro.getDataCriacaoDe()));
    }

    if (filtro.getDataCriacaoAte() != null) {
        criteria.add(Restrictions.le("dataLancamento", filtro.getDataCriacaoAte()));
    }

    if (filtro.getStatusDocFinanceiro() != null && filtro.getStatusDocFinanceiro().length > 0) {
        // adicionamos uma restrio "in", passando um array de constantes da enum StatusPedido
        criteria.add(Restrictions.in("statusFinanceiro", filtro.getStatusDocFinanceiro()));
    }

    if (StringUtils.isNotBlank(filtro.getNomeCliente())) {
        // acessamos o nome do vendedor associado ao pedido pelo alias "v", criado anteriormente
        criteria.add(Restrictions.ilike("f.nomeRazao", filtro.getNomeCliente(), MatchMode.ANYWHERE));
    }

    return criteria.addOrder(Order.asc("id")).list();
}

From source file:com.cubeia.backoffice.users.dao.UserDAOImpl.java

License:Open Source License

private Criteria createFindUserCriteria(Long userId, Long operatorId, String name,
        Collection<UserStatus> includeStatuses, int offset, int limit, UserOrder order, boolean ascending) {

    Session hbSession = getHibernateSession();
    Criteria c = hbSession.createCriteria(User.class);
    c.createAlias("information", "information", JoinType.LEFT_OUTER_JOIN);
    c.setFetchMode("attributes", FetchMode.SELECT);

    if (userId != null) {
        c.add(eq("id", userId));
    }/*from   w  w  w. j  av  a 2s.c  o  m*/

    if (operatorId != null) {
        c.add(eq("operatorId", operatorId));
    }

    if (name != null && !name.isEmpty()) {
        c.add(Restrictions.disjunction().add(like("userName", name)).add(like("information.firstName", name))
                .add(like("information.lastName", name)));
    }

    if (includeStatuses != null) {
        c.add(Restrictions.in("status", includeStatuses));
    }

    if (order != null) {
        if (ascending) {
            c.addOrder(Order.asc(order.getColumnName()));
        } else {
            c.addOrder(Order.desc(order.getColumnName()));
        }
    }

    c.setFirstResult(offset);
    c.setMaxResults(limit);
    return c;
}

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

License:Open Source License

/**
 * Helper method for adding filter criteria.
 * /*  w ww  .  j  a  va 2 s.  co m*/
 * @param criteria
 *            the filter criteria
 * @param filterInfos
 *            list for filter specifications. filter info are added in the order in the list.
 */
@SuppressWarnings("unchecked")
static <E extends Enum<E>> List<FilterParamParser.FilterInfo> addFilterCriteria(Criteria criteria,
        List<FilterParamParser.FilterInfo> filterInfos, Class persistentClass) {

    LinkedList<FilterParamParser.FilterInfo> notFound = new LinkedList<FilterParamParser.FilterInfo>();

    ArrayList<Class<?>> enumClasses = new ArrayList<>();
    enumClasses.add(DiscoveryStatus.class);
    enumClasses.add(DeviceType.class);
    enumClasses.add(ManagedState.class);
    enumClasses.add(DeviceState.class);
    enumClasses.add(CompliantState.class);
    enumClasses.add(ConfigureStatus.class);

    for (FilterParamParser.FilterInfo filterInfo : filterInfos) {
        List<?> values = filterInfo.getColumnValue();

        //
        // Cast strings to the property type
        //
        try {
            Method m = null;
            // can be getXXX or isXXX
            try {
                m = persistentClass.getMethod("get" + StringUtils.capitalize(filterInfo.getColumnName()));
            } catch (NoSuchMethodException nm) {
                m = persistentClass.getMethod("is" + StringUtils.capitalize(filterInfo.getColumnName()));
            }
            Class<?> typeClass = m.getReturnType();

            if (!typeClass.isAssignableFrom(String.class)) {

                // byte/short/int/long
                if (typeClass == byte.class || typeClass == short.class || typeClass == int.class
                        || typeClass == long.class) {
                    LinkedList<Long> castedValues = new LinkedList<Long>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.add(Long.valueOf(stringValue));
                    }
                    // Set casted values
                    values = castedValues;
                    // float/double
                } else if (typeClass == float.class || typeClass == double.class) {
                    LinkedList<Double> castedValues = new LinkedList<Double>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.add(Double.valueOf(stringValue));
                    }
                    // Set casted values
                    values = castedValues;
                    // boolean
                } else if (typeClass == boolean.class) {
                    LinkedList<Boolean> castedValues = new LinkedList<Boolean>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.add(Boolean.valueOf(stringValue));
                    }
                    // Set casted values
                    values = castedValues;
                    // char
                } else if (typeClass == char.class) {
                    LinkedList<Character> castedValues = new LinkedList<Character>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.add(Character.valueOf(stringValue.charAt(0)));
                    }
                    // Set casted values
                    values = castedValues;
                } else if (typeClass == DiscoveryStatus.class) {
                    LinkedList<E> castedValues = new LinkedList<E>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.addAll((Collection<? extends E>) findDeviceTypeSequence(stringValue,
                                DiscoveryStatus.class));
                    }
                    values = castedValues;
                } else if (typeClass == DeviceType.class) {
                    LinkedList<E> castedValues = new LinkedList<E>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.addAll((Collection<? extends E>) findDeviceTypeSequence(stringValue,
                                DeviceType.class));
                    }
                    values = castedValues;
                } else if (typeClass == ManagedState.class) {
                    // ManagedState factored out of DeviceState as of 8.3.1
                    LinkedList<E> castedValues = new LinkedList<E>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.addAll((Collection<? extends E>) findDeviceTypeSequence(stringValue,
                                ManagedState.class));
                    }
                    values = castedValues;
                } else if (typeClass == DeviceState.class) {
                    // ManagedState factored out of DeviceState as of 8.3.1
                    LinkedList<E> castedValues = new LinkedList<E>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.addAll((Collection<? extends E>) findDeviceTypeSequence(stringValue,
                                DeviceState.class));
                    }
                    values = castedValues;
                } else if (typeClass == CompliantState.class) {
                    LinkedList<E> castedValues = new LinkedList<E>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.addAll((Collection<? extends E>) findDeviceTypeSequence(stringValue,
                                CompliantState.class));
                    }
                    values = castedValues;
                } else if (typeClass == ConfigureStatus.class) {
                    LinkedList<E> castedValues = new LinkedList<E>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.addAll((Collection<? extends E>) findDeviceTypeSequence(stringValue,
                                ConfigureStatus.class));
                    }
                    values = castedValues;
                } else if (typeClass == DeviceHealth.class) {
                    LinkedList<E> castedValues = new LinkedList<E>();
                    for (String stringValue : filterInfo.getColumnValue()) {
                        castedValues.addAll((Collection<? extends E>) findDeviceTypeSequence(stringValue,
                                DeviceHealth.class));
                    }
                    values = castedValues;
                } else {
                    continue;
                }
            }

            //
            // Translate filters to Hibernate Criteria
            //
            if (enumClasses.contains(typeClass)) {
                criteria.add(Restrictions.in(filterInfo.getColumnName(), values));
            } else {
                if (values.size() == 0) {
                    continue;
                } else if (values.size() > 1) {
                    if (FilterParamParser.FilterOperator.EQUAL.equals(filterInfo.getFilterOperator())) {
                        criteria.add(Restrictions.in(filterInfo.getColumnName(), values));
                    } else {
                        throw new IllegalArgumentException(
                                "filter operation '" + filterInfo.getFilterOperator() + "' is not recognized.");
                    }
                } else {

                    if (FilterParamParser.FilterOperator.EQUAL.equals(filterInfo.getFilterOperator())) {
                        criteria.add(Restrictions.eq(filterInfo.getColumnName(), values.get(0)));
                    } else if (FilterParamParser.FilterOperator.CONTAIN
                            .equals(filterInfo.getFilterOperator())) {

                        // Escape '_', '%', and '\' for Hibernate.
                        String escapedString = values.get(0).toString();
                        escapedString = escapedString.replace("\\", "\\\\").replace("_", "\\_").replace("%",
                                "\\%");

                        criteria.add(Restrictions.like(filterInfo.getColumnName(), escapedString,
                                MatchMode.ANYWHERE));
                    } else {
                        throw new IllegalArgumentException(
                                "filter operation '" + filterInfo.getFilterOperator() + "' is not recognized.");
                    }
                }
            }

        } catch (NoSuchMethodException e) {
            LOGGER.info("cannot find a method for " + filterInfo.getColumnName() + " in "
                    + persistentClass.toString());
            notFound.add(filterInfo);
            continue;
        }
    }

    return notFound;
}

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

License:Open Source License

/**
 * Helper method for adding filter criteria
 * //from  w w  w .ja v  a 2  s . c  om
 * @param criteria
 *            - the filter criteria
 * @param filterInfos
 *            - list for filter specifications. filter info are added in the order in the list
 *            
 * @return List<FilterParamParser.FilterInfo>
 *                             - list of added filters
 * 
 * @throws IllegalArgumentException
 */
@SuppressWarnings("unchecked")
private List<FilterParamParser.FilterInfo> addFilterCriteria(Criteria criteria,
        List<FilterParamParser.FilterInfo> filterInfos, Class persistentClass) {

    LinkedList<FilterParamParser.FilterInfo> notFound = new LinkedList<>();

    for (FilterParamParser.FilterInfo filterInfo : filterInfos) {
        String columnName = filterInfo.getColumnName();
        List<?> values = filterInfo.getColumnValue();

        //
        // Cast strings to the property type by scanning the persistent class
        //
        Class<?> typeClass = null;
        // try non-boolean-type naming.
        try {
            typeClass = persistentClass.getMethod("get" + StringUtils.capitalize(columnName)).getReturnType();
        } catch (NoSuchMethodException e) {
            logger.info("cannot find a method for " + columnName + " in " + persistentClass.toString());

        }
        // try boolean-type naming.
        if (typeClass == null) {
            try {
                typeClass = persistentClass.getMethod("is" + StringUtils.capitalize(columnName))
                        .getReturnType();
            } catch (NoSuchMethodException e) {
                logger.info("cannot find a method for " + columnName + " in " + persistentClass.toString());
            }
        }
        // property not found. skip.
        if (typeClass == null) {
            notFound.add(filterInfo);
            continue;
        }
        if (!typeClass.isAssignableFrom(String.class)) {

            // byte/short/int/long
            if (typeClass == byte.class || typeClass == short.class || typeClass == int.class
                    || typeClass == long.class) {
                LinkedList<Long> castedValues = new LinkedList<>();
                for (String stringValue : filterInfo.getColumnValue()) {
                    castedValues.add(Long.valueOf(stringValue));
                }
                // Set casted values
                values = castedValues;

                // float/double
            } else if (typeClass == float.class || typeClass == double.class) {
                LinkedList<Double> castedValues = new LinkedList<>();
                for (String stringValue : filterInfo.getColumnValue()) {
                    castedValues.add(Double.valueOf(stringValue));
                }
                // Set casted values
                values = castedValues;
                // boolean
            } else if (typeClass == boolean.class) {
                LinkedList<Boolean> castedValues = new LinkedList<>();
                for (String stringValue : filterInfo.getColumnValue()) {
                    castedValues.add(Boolean.valueOf(stringValue));
                }
                // Set casted values
                values = castedValues;
                // char
            } else if (typeClass == char.class) {
                LinkedList<Character> castedValues = new LinkedList<>();
                for (String stringValue : filterInfo.getColumnValue()) {
                    castedValues.add(Character.valueOf(stringValue.charAt(0)));
                }
                // Set casted values
                values = castedValues;
            }
        }

        //
        // Translate filters to Hibernate Criteria
        //
        if (values.size() > 1) {
            if (FilterParamParser.FilterOperator.EQUAL.equals(filterInfo.getFilterOperator())) {
                criteria.add(Restrictions.in(columnName, values));
            } else {
                throw new IllegalArgumentException(
                        "filter operation '" + filterInfo.getFilterOperator() + "' is not recognized.");
            }
        } else if (values.size() == 1) {
            if (FilterParamParser.FilterOperator.EQUAL.equals(filterInfo.getFilterOperator())) {
                criteria.add(Restrictions.eq(columnName, values.get(0)));
            } else if (FilterParamParser.FilterOperator.CONTAIN.equals(filterInfo.getFilterOperator())) {

                // Escape '_', '%', and '\' for Hibernate.
                String escapedString = values.get(0).toString();
                escapedString = escapedString.replace("\\", "\\\\").replace("_", "\\_").replace("%", "\\%");

                criteria.add(Restrictions.like(columnName, escapedString, MatchMode.ANYWHERE));
            } else {
                throw new IllegalArgumentException(
                        "filter operation '" + filterInfo.getFilterOperator() + "' is not recognized.");
            }
        }
    }

    return notFound;
}

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

License:Open Source License

/**
 * Retrieve all from Device Inventory./*from   w  w  w.java2s .c  om*/
 *
 * @return list of entities
 */
@SuppressWarnings("unchecked")
public List<DeviceInventoryEntity> getAllDeviceInventory(List<SortParamParser.SortInfo> sortInfos,
        List<FilterParamParser.FilterInfo> filterInfos, PaginationInfo paginationInfo)
        throws AsmManagerDAOException {

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

    try {
        // NOTE[fcarta] need to at this here so we dont nest the session / transaction
        List<String> refIdsServices = ListUtils.EMPTY_LIST;
        List<String> refIdsGroups = ListUtils.EMPTY_LIST;
        List<String> refIdsAllGroups = ListUtils.EMPTY_LIST;

        boolean spFilterSet = false;
        boolean spGlobalFilterSet = false;
        if (CollectionUtils.isNotEmpty(filterInfos)) {
            for (FilterParamParser.FilterInfo filterInfo : filterInfos) {
                // if there is a service filter then grab the ref id for the device
                if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) {
                    refIdsServices = getRefIdsOfDevicesByDeploymentIds(filterInfo.getColumnValue());
                } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) {
                    if (filterInfo.getColumnValue()
                            .contains(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_POOL_GLOBAL_ID)) {
                        refIdsAllGroups = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue());
                        spGlobalFilterSet = true;
                    } else {
                        refIdsGroups = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue());
                        spFilterSet = true;
                    }
                }
            }
        }

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

        Criteria criteria = session.createCriteria(DeviceInventoryEntity.class);
        if (sortInfos != null) {
            BaseDAO.addSortCriteria(criteria, sortInfos);
        }

        if (filterInfos != null) {
            final List<FilterParamParser.FilterInfo> notFound = BaseDAO.addFilterCriteria(criteria, filterInfos,
                    DeviceInventoryEntity.class);
            if (CollectionUtils.isNotEmpty(notFound)) {

                for (FilterParamParser.FilterInfo filterInfo : notFound) {
                    // if this is a filter by service then we need to get the subset of ref ids for devices
                    // only in the deployment id subset passed
                    if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) {
                        if (CollectionUtils.isNotEmpty(refIdsServices)) {
                            criteria.add(Restrictions.in("refId", refIdsServices));
                        }
                    } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) {
                        if (spGlobalFilterSet) {
                            if (refIdsAllGroups.isEmpty()) {
                                // this means there are no servers in any server pool - all are in Global
                                criteria.add(Restrictions.sqlRestriction("(1=1)"));
                            } else {
                                criteria.add(Restrictions.not(Restrictions.in("refId", refIdsAllGroups)));
                            }
                        } else if (spFilterSet) {
                            if (refIdsGroups.isEmpty()) {
                                criteria.add(Restrictions.sqlRestriction("(1=0)"));
                            } else {
                                criteria.add(Restrictions.in("refId", refIdsGroups));
                            }
                        }
                    } else {
                        criteria.createAlias("deviceInventoryEntity", "deviceInventoryEntityAlias");
                        criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceKey",
                                filterInfo.getColumnName()));
                        if (filterInfo.getColumnValue().size() == 1) {
                            criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceValue",
                                    filterInfo.getColumnValue().get(0)));
                        } else if (filterInfo.getColumnValue().size() > 1) {
                            criteria.add(Restrictions.in("deviceInventoryEntityAlias.deviceValue",
                                    filterInfo.getColumnValue()));
                        }
                    }
                }
            }
        }

        if (paginationInfo != null) {
            int offset = paginationInfo.getOffset();
            int limit = paginationInfo.getLimit();
            int pageSize = limit;
            criteria.setFirstResult(offset);
            criteria.setMaxResults(pageSize);
        }

        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

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

    return entityList;
}

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

License:Open Source License

/**
 * Helper method to get total number of records with filter parameters
 *
 * @param filterInfos - List for holding filtering information parsed from filter query parameter value
 * @return int - total number of records
 *///ww  w .  j a  va 2 s  .  c om
public Integer getTotalRecords(List<FilterParamParser.FilterInfo> filterInfos) {
    long totalRecords = 0;
    Session session = null;
    Transaction tx = null;
    try {
        session = _dao._database.getNewSession();
        tx = session.beginTransaction();

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

        final List<FilterParamParser.FilterInfo> notFound = BaseDAO.addFilterCriteria(criteria, filterInfos,
                DeviceInventoryEntity.class);
        if (CollectionUtils.isNotEmpty(notFound)) {

            for (FilterParamParser.FilterInfo filterInfo : notFound) {
                // if this is a filter by service then we need to get the subset of ref ids for devices
                // only in the deployment id subset passed
                if (StringUtils.equals(SERVICE_FILTER_PARAM, filterInfo.getColumnName())) {
                    final List<String> refIds = getRefIdsOfDevicesByDeploymentIds(filterInfo.getColumnValue());
                    criteria.add(Restrictions.in("refId", refIds));
                } else if (StringUtils.equals(SERVERPOOL_FILTER_PARAM, filterInfo.getColumnName())) {
                    if (filterInfo.getColumnValue()
                            .contains(ServiceTemplateSettingIDs.SERVICE_TEMPLATE_SERVER_POOL_GLOBAL_ID)) {
                        final List<String> refIds = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue());
                        if (refIds.isEmpty()) {
                            criteria.add(Restrictions.sqlRestriction("(1=0)"));
                        } else {
                            criteria.add(Restrictions.not(Restrictions.in("refId", refIds)));
                        }
                    } else {
                        final List<String> refIds = getRefIdsOfDevicesByGroupIds(filterInfo.getColumnValue());
                        if (refIds.isEmpty()) {
                            criteria.add(Restrictions.sqlRestriction("(1=0)"));
                        } else {
                            criteria.add(Restrictions.in("refId", refIds));
                        }
                    }
                } else {
                    criteria.createAlias("deviceInventoryEntity", "deviceInventoryEntityAlias");
                    criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceKey",
                            filterInfo.getColumnName()));
                    if (filterInfo.getColumnValue().size() == 1) {
                        criteria.add(Restrictions.eq("deviceInventoryEntityAlias.deviceValue",
                                filterInfo.getColumnValue().get(0)));
                    } else if (filterInfo.getColumnValue().size() > 1) {
                        criteria.add(Restrictions.in("deviceInventoryEntityAlias.deviceValue",
                                filterInfo.getColumnValue()));
                    }
                }
            }
        }

        totalRecords = (long) criteria.setProjection(Projections.rowCount()).uniqueResult();

        tx.commit();
    } catch (Exception e) {
        logger.error("Exception while getting getTotalRecords", e);
        if (tx != null)
            try {
                tx.rollback();
            } catch (Exception e2) {
                logger.warn("Error during rollback", e2);
            }
    } finally {
        try {
            if (session != null)
                session.close();
        } catch (Exception e2) {
            logger.warn("Error during session close", e2);
        }
    }

    return (int) totalRecords;
}

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

License:Open Source License

/**
 * Retrieve all device's ids./*ww w  .j av a  2 s  .  c o m*/
 *
 * @param deviceSeqIds - list of device's ids.
 * @return list of device's ids.
 */
@SuppressWarnings("unchecked")
public List<DeviceInventoryEntity> getDevicesByIds(List<String> deviceSeqIds) {
    Session session = null;
    Transaction tx = null;

    List<DeviceInventoryEntity> deviceInvList = new ArrayList<DeviceInventoryEntity>();

    if (null == deviceSeqIds || deviceSeqIds.size() <= 0)
        return deviceInvList;

    try {
        session = _dao._database.getNewSession();
        tx = session.beginTransaction();
        Criteria criteria = session.createCriteria(DeviceInventoryEntity.class);
        Criterion idRest = Restrictions.in("refId", deviceSeqIds);
        criteria.add(idRest);
        deviceInvList = criteria.list();

        this.setFirmwareBasedOnDeployment(deviceInvList);
        tx.commit();
    } catch (Exception e) {
        logger.warn("Caught exception during get all device by id: " + e, e);
        try {
            if (tx != null) {
                tx.rollback();
            }
        } catch (Exception ex) {
            logger.warn("Unable to rollback transaction during get all device by id: " + ex);
        }
        throw new AsmManagerInternalErrorException("Get Device Ids by id", "DeviceInventoryDAO", e);
    } finally {
        try {
            if (session != null) {
                session.close();
            }
        } catch (Exception ex) {
            logger.warn("Unable to close session during get all device  by id: " + ex);
        }
    }
    return deviceInvList;

}

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

License:Open Source License

public List<DeviceInventoryEntity> getDevicesByServiceTags(List<String> serviceTags) {
    Session session = null;// ww  w .ja  va  2 s .co  m
    Transaction tx = null;

    List<DeviceInventoryEntity> deviceInvList = new ArrayList<DeviceInventoryEntity>();

    if (null == serviceTags || serviceTags.size() <= 0)
        return deviceInvList;

    try {
        session = _dao._database.getNewSession();
        tx = session.beginTransaction();
        Criteria criteria = session.createCriteria(DeviceInventoryEntity.class);
        Criterion idRest = Restrictions.in("serviceTag", serviceTags);
        criteria.add(idRest);
        deviceInvList = criteria.list();

        this.setFirmwareBasedOnDeployment(deviceInvList);
        tx.commit();
    } catch (Exception e) {
        logger.warn("Caught exception during get all device by id: " + e, e);
        try {
            if (tx != null) {
                tx.rollback();
            }
        } catch (Exception ex) {
            logger.warn("Unable to rollback transaction during get all device by id: " + ex);
        }
        throw new AsmManagerInternalErrorException("Get Device Ids by id", "DeviceInventoryDAO", e);
    } finally {
        try {
            if (session != null) {
                session.close();
            }
        } catch (Exception ex) {
            logger.warn("Unable to close session during get all device  by id: " + ex);
        }
    }
    return deviceInvList;

}

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

License:Open Source License

/**
 * Retrieve DiscoveryResult based on parent job id.
 * @return the list of discovery results for given parent job id.
 *///from ww w .j  a va2 s  . c  o  m
@SuppressWarnings("unchecked")
public List<DiscoveryResultEntity> getDiscoveryResult(String parentJobId,
        List<SortParamParser.SortInfo> sortInfos, List<FilterParamParser.FilterInfo> filterInfos,
        PaginationInfo paginationInfo) throws AsmManagerDAOException {

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

    logger.debug("getDiscoveryResult for job: " + parentJobId);

    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);
        criteria.add(Restrictions.ne("serverType", Server.ServerType.BLADE.value())); // never return blades
        criteria.add(Restrictions.ne("serverType", Server.ServerType.COMPELLENT.value())); // never return compellents which now show up as iDrac7
        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("discoveryResultEntityAlias.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();

        // Commit transaction.
        tx.commit();
        logger.debug("getDiscoveryResult for job: " + entityList.size());
    } catch (Exception e) {
        logger.warn("Caught exception during get discovery result for job: " + parentJobId + ", " + e);
        try {
            if (tx != null) {
                tx.rollback();
            }
        } catch (Exception ex) {
            logger.warn("Unable to rollback transaction during get device: " + ex);
        }
        //throw new AsmManagerDAOException("Caught exception during get discovery result for jobId: "    + parentJobId + ", "  + e, e);
        throw new AsmManagerInternalErrorException("Error Getting Discovery result", "DiscoveryResultDAO", e);
    } finally {
        try {
            if (session != null) {
                session.close();
            }
        } catch (Exception ex) {
            logger.warn("Unable to close session during get device: " + ex);
        }
    }

    return entityList;
}