List of usage examples for org.hibernate.criterion Projections alias
public static Projection alias(Projection projection, String alias)
From source file:monasca.thresh.infrastructure.persistence.hibernate.AlarmSqlImpl.java
License:Apache License
@SuppressWarnings("unchecked") private List<Alarm> findAlarms(@Nonnull final LookupHelper lookupHelper) { StatelessSession session = null;//from w w w .j a v a 2 s.co m try { session = sessionFactory.openStatelessSession(); final Criteria criteria = lookupHelper.apply(session.createCriteria(AlarmDb.class, "a") .createAlias("a.subAlarms", "sa").createAlias("a.alarmDefinition", "ad") .add(Restrictions.isNull("ad.deletedAt")).addOrder(Order.asc("a.id")) .setProjection(Projections.projectionList().add(Projections.property("a.id")) .add(Projections.property("a.alarmDefinition.id")).add(Projections.property("a.state")) .add(Projections.alias(Projections.property("sa.id"), "sub_alarm_id")) .add(Projections.property("sa.expression")) .add(Projections.property("sa.subExpression.id")) .add(Projections.property("ad.tenantId"))) .setReadOnly(true)); assert criteria != null; return this.createAlarms(session, (List<Object[]>) criteria.list(), lookupHelper); } finally { if (session != null) { session.close(); } } }
From source file:org.openmrs.module.amrscustomization.db.HibernateAMRSCustomizationDAO.java
License:Open Source License
public List<Form> getPopularRecentFormsForUser(User user) { String monthsStr = Context.getAdministrationService() .getGlobalProperty(AMRSCustomizationConstants.GP_RECENT_FORMS_INTERVAL); Integer months = AMRSCustomizationConstants.DEFAULT_RECENT_FORMS_INTERVAL; try {/* w w w . ja v a 2s. c om*/ months = Integer.parseInt(monthsStr); } catch (NumberFormatException ex) { log.warn("could not interpret " + monthsStr + " interval as an integer."); } Calendar monthsAgo = Calendar.getInstance(); monthsAgo.add(Calendar.MONTH, -1 * months); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.groupProperty("form")); projectionList.add(Projections.alias(Projections.rowCount(), "total")); Criteria crit = sessionFactory.getCurrentSession().createCriteria(Encounter.class) .add(Restrictions.and(Restrictions.eq("creator", user), Restrictions.gt("dateCreated", monthsAgo.getTime()))) .setProjection(projectionList).addOrder(Order.desc("total")).setMaxResults(5); List<Form> forms = new ArrayList<Form>(); List<Object[]> foo = crit.list(); for (Object[] result : foo) { log.warn(result[0] + ": " + result[1]); forms.add((Form) result[0]); } return forms; }
From source file:org.opennms.netmgt.dao.hibernate.AssetRecordDaoHibernate.java
License:Open Source License
@Override public List<OnmsAssetRecord> getDistinctProperties() { DetachedCriteria criteria = DetachedCriteria.forClass(OnmsAssetRecord.class); ProjectionList projList = Projections.projectionList(); // projList.add(Projections.alias(Projections.property("geolocation"), "geolocation")); projList.add(Projections.alias(Projections.property("additionalhardware"), "additionalhardware")); projList.add(Projections.alias(Projections.property("geolocation.address1"), "address1")); projList.add(Projections.alias(Projections.property("geolocation.address2"), "address2")); projList.add(Projections.alias(Projections.property("admin"), "admin")); projList.add(Projections.alias(Projections.property("assetNumber"), "assetNumber")); projList.add(Projections.alias(Projections.property("autoenable"), "autoenable")); projList.add(Projections.alias(Projections.property("building"), "building")); projList.add(Projections.alias(Projections.property("category"), "category")); projList.add(Projections.alias(Projections.property("circuitId"), "circuitId")); projList.add(Projections.alias(Projections.property("geolocation.city"), "city")); projList.add(Projections.alias(Projections.property("comment"), "comment")); projList.add(Projections.alias(Projections.property("connection"), "connection")); projList.add(Projections.alias(Projections.property("geolocation.longitude"), "longitude")); projList.add(Projections.alias(Projections.property("geolocation.latitude"), "latitude")); projList.add(Projections.alias(Projections.property("cpu"), "cpu")); projList.add(Projections.alias(Projections.property("department"), "department")); projList.add(Projections.alias(Projections.property("description"), "description")); projList.add(Projections.alias(Projections.property("displayCategory"), "displayCategory")); projList.add(Projections.alias(Projections.property("division"), "division")); projList.add(Projections.alias(Projections.property("enable"), "enable")); projList.add(Projections.alias(Projections.property("floor"), "floor")); projList.add(Projections.alias(Projections.property("hdd1"), "hdd1")); projList.add(Projections.alias(Projections.property("hdd2"), "hdd2")); projList.add(Projections.alias(Projections.property("hdd3"), "hdd3")); projList.add(Projections.alias(Projections.property("hdd4"), "hdd4")); projList.add(Projections.alias(Projections.property("hdd5"), "hdd5")); projList.add(Projections.alias(Projections.property("hdd6"), "hdd6")); projList.add(Projections.alias(Projections.property("inputpower"), "inputpower")); projList.add(Projections.alias(Projections.property("lease"), "lease")); projList.add(Projections.alias(Projections.property("maintcontract"), "maintcontract")); projList.add(Projections.alias(Projections.property("manufacturer"), "manufacturer")); projList.add(Projections.alias(Projections.property("modelNumber"), "modelNumber")); projList.add(Projections.alias(Projections.property("notifyCategory"), "notifyCategory")); projList.add(Projections.alias(Projections.property("numpowersupplies"), "numpowersupplies")); projList.add(Projections.alias(Projections.property("operatingSystem"), "operatingSystem")); projList.add(Projections.alias(Projections.property("pollerCategory"), "pollerCategory")); projList.add(Projections.alias(Projections.property("port"), "port")); projList.add(Projections.alias(Projections.property("rack"), "rack")); projList.add(Projections.alias(Projections.property("ram"), "ram")); projList.add(Projections.alias(Projections.property("region"), "region")); projList.add(Projections.alias(Projections.property("room"), "room")); projList.add(Projections.alias(Projections.property("serialNumber"), "serialNumber")); projList.add(Projections.alias(Projections.property("slot"), "slot")); projList.add(Projections.alias(Projections.property("snmpcommunity"), "snmpcommunity")); projList.add(Projections.alias(Projections.property("geolocation.state"), "state")); projList.add(Projections.alias(Projections.property("storagectrl"), "storagectrl")); projList.add(Projections.alias(Projections.property("supportPhone"), "supportPhone")); projList.add(Projections.alias(Projections.property("thresholdCategory"), "thresholdCategory")); projList.add(Projections.alias(Projections.property("username"), "username")); projList.add(Projections.alias(Projections.property("vendor"), "vendor")); projList.add(Projections.alias(Projections.property("vendorAssetNumber"), "vendorAssetNumber")); projList.add(Projections.alias(Projections.property("vendorFax"), "vendorFax")); projList.add(Projections.alias(Projections.property("vendorPhone"), "vendorPhone")); projList.add(Projections.alias(Projections.property("geolocation.zip"), "zip")); projList.add(Projections.alias(Projections.property("vmwareManagedObjectId"), "vmwareManagedObjectId")); projList.add(Projections.alias(Projections.property("vmwareManagedEntityType"), "vmwareManagedEntityType")); projList.add(Projections.alias(Projections.property("vmwareManagementServer"), "vmwareManagementServer")); projList.add(Projections.alias(Projections.property("vmwareTopologyInfo"), "vmwareTopologyInfo")); projList.add(Projections.alias(Projections.property("vmwareState"), "vmwareState")); criteria.setProjection(Projections.distinct(projList)); criteria.setResultTransformer(Transformers.aliasToBean(OnmsAssetRecord.class)); @SuppressWarnings("unchecked") List<OnmsAssetRecord> result = (List<OnmsAssetRecord>) getHibernateTemplate().findByCriteria(criteria); return result; }
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 www . ja v 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);// w w w . j ava 2 s . co 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 {/* w w w. ja v a2s.c om*/ 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.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionStatAccessImpl.java
License:Apache License
private Projection makeTimeGroupByPostgreSql(ColumnStatRequest<T> column, ColumnStatType statType, Criteria criteria) {/* w ww. j av a2 s.co m*/ String func; if (statType.equals(GROUP_BY_DAY)) { func = "day"; } else if (statType.equals(GROUP_BY_DOW)) { func = "dow"; } else if (statType.equals(GROUP_BY_DOY)) { func = "doy"; } else if (statType.equals(GROUP_BY_HOUR)) { func = "hour"; } else if (statType.equals(GROUP_BY_MONTH)) { func = "month"; } else if (statType.equals(GROUP_BY_QUARTER)) { func = "quarter"; } else if (statType.equals(GROUP_BY_WEEK)) { func = "week"; } else if (statType.equals(GROUP_BY_YEAR)) { func = "year"; } else { func = "day"; } String colName = column.getColumn().getName(); String fldName = colName + "_" + func; String sqlFunc = "extract(" + func + " from {alias}." + colName + ")"; criteria.addOrder(Order.asc(fldName)); return Projections.alias(Projections.sqlGroupProjection(sqlFunc + " as " + fldName, fldName, new String[] { fldName }, TIME_RESULT_TYPES), fldName); }
From source file:org.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionStatAccessImpl.java
License:Apache License
private Projection makeTimeGroupByOracle(ColumnStatRequest<T> column, ColumnStatType statType, Criteria criteria) {/* w w w. ja va 2s . c o m*/ String func; if (statType.equals(GROUP_BY_DAY)) { func = "DD"; } else if (statType.equals(GROUP_BY_DOW)) { func = "D"; } else if (statType.equals(GROUP_BY_DOY)) { func = "DDD"; } else if (statType.equals(GROUP_BY_HOUR)) { func = "HH24"; } else if (statType.equals(GROUP_BY_MONTH)) { func = "MM"; } else if (statType.equals(GROUP_BY_QUARTER)) { func = "Q"; } else if (statType.equals(GROUP_BY_WEEK)) { func = "WW"; } else if (statType.equals(GROUP_BY_YEAR)) { func = "YYYY"; } else { func = "DD"; } String colName = column.getColumn().getName(); String fldName = colName + "_" + func; String sqlFunc = "to_char({alias}." + colName + ", '" + func + "')"; criteria.addOrder(Order.asc(fldName)); return Projections.alias(Projections.sqlGroupProjection(sqlFunc + " as " + fldName, fldName, new String[] { fldName }, TIME_RESULT_TYPES), fldName); }
From source file:org.sculptor.framework.accessimpl.jpahibernate.JpaHibFindByConditionStatAccessImpl.java
License:Apache License
private Projection makeTimeGroupByMySql(ColumnStatRequest<T> column, ColumnStatType statType, Criteria criteria) {//from w w w. j a v a2 s .c o m String func; if (statType.equals(GROUP_BY_DAY)) { func = "day"; } else if (statType.equals(GROUP_BY_DOW)) { func = "dayofwek"; } else if (statType.equals(GROUP_BY_DOY)) { func = "dayofyear"; } else if (statType.equals(GROUP_BY_HOUR)) { func = "hour"; } else if (statType.equals(GROUP_BY_MONTH)) { func = "month"; } else if (statType.equals(GROUP_BY_QUARTER)) { func = "quarter"; } else if (statType.equals(GROUP_BY_WEEK)) { func = "week"; } else if (statType.equals(GROUP_BY_YEAR)) { func = "year"; } else { func = "day"; } String colName = column.getColumn().getName(); String fldName = colName + "_" + func; String sqlFunc = "extract(" + func + " from {alias}." + colName + ")"; criteria.addOrder(Order.asc(fldName)); return Projections.alias(Projections.sqlGroupProjection(sqlFunc + " as " + fldName, fldName, new String[] { fldName }, TIME_RESULT_TYPES), fldName); }