Example usage for org.hibernate.criterion Projections alias

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

Introduction

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

Prototype

public static Projection alias(Projection projection, String alias) 

Source Link

Document

Assign an alias to a projection, by wrapping it

Usage

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);
}