List of usage examples for org.hibernate.criterion Projections groupProperty
public static PropertyProjection groupProperty(String propertyName)
From source file:org.openmrs.module.inventory.db.hibernate.HibernateInventoryDAO.java
License:Open Source License
public List<InventoryStoreDrugTransactionDetail> listViewStockBalance(Integer storeId, Integer categoryId, String drugName, String fromDate, String toDate, boolean isExpiry, int min, int max) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreDrugTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .createAlias("transactionDetail.drug", "drugAlias") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("drug")).add(Projections.groupProperty("formulation")) .add(Projections.sum("currentQuantity")).add(Projections.sum("quantity")) .add(Projections.sum("issueQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (categoryId != null) { criteria.add(Restrictions.eq("drugAlias.category.id", categoryId)); }/* w w w.ja va2 s . c o m*/ if (!StringUtils.isBlank(drugName)) { criteria.add(Restrictions.like("drugAlias.name", "%" + drugName + "%")); } if (!StringUtils.isBlank(fromDate) && StringUtils.isBlank(toDate)) { String startFromDate = fromDate + " 00:00:00"; String endFromDate = fromDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startFromDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endFromDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = toDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (!StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = fromDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listInventorySubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } if (isExpiry) { criteria.add(Restrictions.lt("transactionDetail.dateExpiry", new Date())); } else { criteria.add(Restrictions.ge("transactionDetail.dateExpiry", new Date())); } /* * Sagar Bele : 13-08-2012 Bug #330 ( [INVENTORY]-error in Current * quantity of pharmacy ) */ criteria.add(Restrictions.ge("transactionDetail.currentQuantity", 0)); criteria.setProjection(proList); if (max > 0) { criteria.setFirstResult(min).setMaxResults(max); } List<Object> lst = criteria.list(); if (lst == null || lst.size() == 0) { return null; } List<InventoryStoreDrugTransactionDetail> list = new ArrayList<InventoryStoreDrugTransactionDetail>(); for (int i = 0; i < lst.size(); i++) { Object[] row = (Object[]) lst.get(i); InventoryStoreDrugTransactionDetail tDetail = new InventoryStoreDrugTransactionDetail(); tDetail.setDrug((InventoryDrug) row[0]); tDetail.setFormulation((InventoryDrugFormulation) row[1]); tDetail.setCurrentQuantity((Integer) row[2]); tDetail.setQuantity((Integer) row[3]); tDetail.setIssueQuantity((Integer) row[4]); list.add(tDetail); } return list; }
From source file:org.openmrs.module.inventory.db.hibernate.HibernateInventoryDAO.java
License:Open Source License
@Override public List<InventoryStoreItemTransactionDetail> listStoreItemAvaiable(Integer storeId, Collection<Integer> items, Collection<Integer> specifications) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreItemTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("item")).add(Projections.groupProperty("specification")) .add(Projections.sum("currentQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (CollectionUtils.isNotEmpty(items)) { criteria.createCriteria("transactionDetail.item", Criteria.INNER_JOIN) .add(Restrictions.in("id", items)); }//from w ww . j a va 2s . co m criteria.add(Restrictions.eq("transaction.typeTransaction", ActionValue.TRANSACTION[0])); if (CollectionUtils.isNotEmpty(specifications)) { criteria.createCriteria("transactionDetail.specification", Criteria.LEFT_JOIN) .add(Restrictions.in("id", specifications)); } criteria.setProjection(proList); List<Object> lst = criteria.list(); if (lst == null || lst.size() == 0) { return null; } List<InventoryStoreItemTransactionDetail> list = new ArrayList<InventoryStoreItemTransactionDetail>(); // System.out.println("lst size: "+lst.size()); for (int i = 0; i < lst.size(); i++) { Object[] row = (Object[]) lst.get(i); InventoryStoreItemTransactionDetail tDetail = new InventoryStoreItemTransactionDetail(); tDetail.setItem((InventoryItem) row[0]); tDetail.setSpecification((InventoryItemSpecification) row[1]); tDetail.setCurrentQuantity((Integer) row[2]); list.add(tDetail); // System.out.println("I: "+i+" item: "+tDetail.getItem().getName()+" specification: "+(tDetail.getSpecification() // != null ?tDetail.getSpecification().getName() : " null ") // +" quantity: "+tDetail.getCurrentQuantity()); } // System.out.println("list available: "+list); return list; }
From source file:org.openmrs.module.inventory.db.hibernate.HibernateInventoryDAO.java
License:Open Source License
@Override public List<InventoryStoreItemTransactionDetail> listStoreItemViewStockBalance(Integer storeId, Integer categoryId, String itemName, String fromDate, String toDate, int min, int max) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreItemTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .createAlias("transactionDetail.item", "itemAlias") .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("item")).add(Projections.groupProperty("specification")) .add(Projections.sum("currentQuantity")).add(Projections.sum("quantity")) .add(Projections.sum("issueQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (categoryId != null) { criteria.add(Restrictions.eq("itemAlias.subCategory.id", categoryId)); }// w w w . j av a 2 s . c om if (!StringUtils.isBlank(itemName)) { criteria.add(Restrictions.like("itemAlias.name", "%" + itemName + "%")); } if (!StringUtils.isBlank(fromDate) && StringUtils.isBlank(toDate)) { String startFromDate = fromDate + " 00:00:00"; String endFromDate = fromDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startFromDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endFromDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = toDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (!StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = fromDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listInventorySubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } criteria.setProjection(proList); if (max > 0) { criteria.setFirstResult(min).setMaxResults(max); } List<Object> lst = criteria.list(); if (lst == null || lst.size() == 0) { return null; } List<InventoryStoreItemTransactionDetail> list = new ArrayList<InventoryStoreItemTransactionDetail>(); for (int i = 0; i < lst.size(); i++) { Object[] row = (Object[]) lst.get(i); InventoryStoreItemTransactionDetail tDetail = new InventoryStoreItemTransactionDetail(); tDetail.setItem((InventoryItem) row[0]); tDetail.setSpecification((InventoryItemSpecification) row[1]); tDetail.setCurrentQuantity((Integer) row[2]); tDetail.setQuantity((Integer) row[3]); tDetail.setIssueQuantity((Integer) row[4]); list.add(tDetail); } return list; }
From source file:org.openmrs.module.inventory.db.hibernate.HibernateInventoryDAO.java
License:Open Source License
@Override public Integer countStoreItemViewStockBalance(Integer storeId, Integer categoryId, String itemName, String fromDate, String toDate) throws DAOException { Criteria criteria = sessionFactory.getCurrentSession() .createCriteria(InventoryStoreItemTransactionDetail.class, "transactionDetail") .createAlias("transactionDetail.transaction", "transaction") .createAlias("transactionDetail.item", "itemAlias"); ProjectionList proList = Projections.projectionList(); proList.add(Projections.groupProperty("item")).add(Projections.groupProperty("specification")) .add(Projections.sum("currentQuantity")).add(Projections.sum("quantity")) .add(Projections.sum("issueQuantity")); criteria.add(Restrictions.eq("transaction.store.id", storeId)); if (categoryId != null) { criteria.add(Restrictions.eq("itemAlias.subCategory.id", categoryId)); }//ww w. j av a2 s. c om if (!StringUtils.isBlank(itemName)) { criteria.add(Restrictions.like("itemAlias.name", "%" + itemName + "%")); } if (!StringUtils.isBlank(fromDate) && StringUtils.isBlank(toDate)) { String startFromDate = fromDate + " 00:00:00"; String endFromDate = fromDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startFromDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endFromDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = toDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listSubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } else if (!StringUtils.isBlank(fromDate) && !StringUtils.isBlank(toDate)) { String startToDate = fromDate + " 00:00:00"; String endToDate = toDate + " 23:59:59"; try { criteria.add(Restrictions.and( Restrictions.ge("transactionDetail.createdOn", formatter.parse(startToDate)), Restrictions.le("transactionDetail.createdOn", formatter.parse(endToDate)))); } catch (Exception e) { // TODO: handle exception System.out.println("listInventorySubStoreIndent>>Error convert date: " + e.toString()); e.printStackTrace(); } } criteria.setProjection(proList); List<Object> list = criteria.list(); Number total = 0; if (!CollectionUtils.isEmpty(list)) { total = (Number) list.size(); } return total.intValue(); }
From source file:org.opennms.netmgt.dao.hibernate.AccessPointDaoHibernate.java
License:Open Source License
/** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override/*from w w w. j a v a2 s .c om*/ public List<String> findDistinctPackagesLike(final String pkg) { final HibernateCallback<List<String>> callback = new HibernateCallback<List<String>>() { @Override public List<String> doInHibernate(final Session session) throws SQLException { return session.createCriteria(OnmsAccessPoint.class) .setProjection(Projections.groupProperty("pollingPackage")) .add(Restrictions.like("pollingPackage", pkg)).list(); } }; return (List<String>) getHibernateTemplate().executeFind(callback); }
From source file:org.remus.marketplace.controller.admin.MarketAdminController.java
License:Open Source License
@Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { List<Market> find = marketDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE); List<Object> query = nodeDao.query(new AdvancedCriteria() .setProjection(Projections.projectionList().add(Projections.groupProperty(Node.ID), "cat_node") .add(Projections.alias(Projections.rowCount(), "catCount"))) .addSubCriteria(new AdvancedCriteria().setAssosication(Node.CATEGORIES))); List<Node> orphans = new ArrayList<Node>(); List<Integer> nonOrphan = new ArrayList<Integer>(); for (Object object : query) { nonOrphan.add((Integer) ((Object[]) object)[0]); }/*from w ww. jav a 2s . co m*/ if (nonOrphan.size() == 0) { orphans = nodeDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE); } else { orphans = nodeDao.find( new AdvancedCriteria().addRestriction(Restrictions.not(Restrictions.in(Node.ID, nonOrphan)))); } List<Category> categories = categoryDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE); List<Platform> platforms = platformDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE); List<Node> nodes = nodeDao.find(AdvancedCriteria.EMPTY_READONLY_INSTANCE); Map<String, Object> response = new HashMap<String, Object>(); response.put("markets", find); response.put("orphans", orphans); response.put("platforms", platforms); response.put("categories", categories); response.put("solutions", nodes); return new ModelAndView("admin/markets", response); }
From source file:org.remus.marketplace.controller.IndexController.java
License:Open Source License
@Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { List<Node> featured = nodeDao.find( new AdvancedCriteria().addRestriction(Restrictions.eq(Node.FOUNDATIONMEMBER, 1)).setMaxResults(10)); List<Object> popular = nodeDao.query(new AdvancedCriteria().setMaxResults(10) .setProjection(Projections.projectionList().add(Projections.groupProperty(Node.ID), "dl_node") .add(Projections.alias(Projections.rowCount(), "downloadCount"))) .addSubCriteria(new AdvancedCriteria().setAssosication(Node.DOWNLOADS) .addOrder(Order.desc("downloadCount")))); List<Popular> popularResponse = new ArrayList<IndexController.Popular>(); for (Object object : popular) { Popular popular2 = new Popular(); popular2.setCount((Integer) ((Object[]) object)[1]); popular2.setId((Integer) ((Object[]) object)[0]); popular2.setName(nodeDao.findById(popular2.getId()).getName()); popularResponse.add(popular2);/* www . ja v a 2s.c o m*/ } Map<String, Object> response = new HashMap<String, Object>(); response.put("featured", featured); response.put("popular", popularResponse); return new ModelAndView("index", response); }
From source file:org.remus.marketplace.servlets.PopularListing.java
License:Open Source License
@Override public void handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { arg1.setContentType("text/xml"); try {/* ww w . j a v a 2 s.c o m*/ JAXBContext newInstance = JAXBContext.newInstance(Marketplace.class, org.remus.marketplace.xml.Market.class); Marketplace marketplace = new Marketplace(); List<Object> findByCategoriesId = nodeDao.query(new AdvancedCriteria().setMaxResults(10) .setProjection(Projections.projectionList().add(Projections.groupProperty(Node.ID), "dl_node") .add(Projections.alias(Projections.rowCount(), "downloadCount"))) .addSubCriteria(new AdvancedCriteria().setAssosication(Node.DOWNLOADS) .addOrder(Order.desc("downloadCount")))); boolean favoriteMode = arg0.getParameter("favorites") != null && Boolean.parseBoolean(arg0.getParameter("favorites")); Favorite favorite = null; Popular popular = null; if (favoriteMode) { favorite = new Favorite(); favorite.setCount(findByCategoriesId.size()); } else { popular = new Popular(); popular.setCount(findByCategoriesId.size()); } for (Object findById : findByCategoriesId) { Object[] rs = (Object[]) findById; int parseInt = Integer.parseInt(rs[0].toString()); Node findById2 = nodeDao.findById(parseInt); org.remus.marketplace.xml.Node node = XMLBuilder.buildNode(serverPrefix, findById2); if (favoriteMode) { favorite.getNode().add(node); } else { popular.getNode().add(node); } } if (favoriteMode) { marketplace.setFavorites(favorite); } else { marketplace.setPopular(popular); } Marshaller createMarshaller = newInstance.createMarshaller(); XMLSerializer xmlSerializer = XMLBuilder.getXMLSerializer(arg1.getOutputStream()); createMarshaller.marshal(marketplace, xmlSerializer.asContentHandler()); } catch (JAXBException e) { throw new ServletException(e); } }
From source file:org.sakaiproject.contentreview.dao.ContentReviewItemDao.java
License:Educational Community License
@SuppressWarnings("unchecked") public List<ContentReviewItem> findByProviderGroupedBySiteAndTask(Integer providerId) { Criteria c = sessionFactory.getCurrentSession().createCriteria(ContentReviewItem.class) .add(Restrictions.eq("providerId", providerId)).setProjection(Projections.projectionList() .add(Projections.groupProperty("siteId")).add(Projections.groupProperty("taskId"))); return c.list(); }
From source file:org.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionStatAccessImpl.java
License:Apache License
private void addStatProjection(Criteria criteria) throws PersistenceException { ProjectionList projList = Projections.projectionList(); projList.add(Projections.rowCount()); for (ColumnStatRequest<T> column : statRequest) { if (column.isFlag(COUNT)) { projList.add(Projections.count(column.getColumn().getName())); }//from w w w .j a v a 2s . co m if (column.isFlag(MIN)) { projList.add(Projections.min(column.getColumn().getName())); } if (column.isFlag(MAX)) { projList.add(Projections.max(column.getColumn().getName())); } if (column.isFlag(AVERAGE)) { projList.add(Projections.avg(column.getColumn().getName())); } if (column.isFlag(SUM)) { projList.add(Projections.sum(column.getColumn().getName())); } if (column.isFlag(GROUP_BY_VAL)) { projList.add(Projections.groupProperty(column.getColumn().getName())); } // Time groups for (ColumnStatType flag : TIME_GROUPS) { if (column.isFlag(flag)) { projList.add(makeTimeGroupBy(column, flag, criteria)); } } } criteria.setProjection(projList); }