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