Example usage for org.hibernate.criterion Projections groupProperty

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

Introduction

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

Prototype

public static PropertyProjection groupProperty(String propertyName) 

Source Link

Document

A grouping property value projection

Usage

From source file:org.egov.ptis.actions.reports.BoundaryWisePropUsgeDelegate.java

License:Open Source License

public List getWardList(Integer zoneNo) {
    LOGGER.debug("Entered into getWardList method");
    LOGGER.debug("Zone Number : " + zoneNo);
    List wardList = null;/*  w w  w .j  a v a 2 s.com*/
    Conjunction conjun = Restrictions.conjunction();
    if (zoneNo > 0) {
        Criterion criterion = Restrictions.like("zone.id", zoneNo);
        conjun.add(criterion);
        Integer vacTypeId = getPropertyIdbyCode("OPEN_PLOT");
        // Criterion anothercriterion = Restrictions.ne("propTypeMstrID",
        // vacTypeId);
        // conjun.add(anothercriterion);

        Projection projection = Projections.projectionList().add(Projections.property("ward.id"))
                .add(Projections.property("propTypeMstrID.id")).add(Projections.sum("aggrArrDmd"))
                .add(Projections.sum("aggrCurrDmd")).add(Projections.count("basicPropertyID"))
                .add(Projections.groupProperty("ward.id")).add(Projections.groupProperty("propTypeMstrID"));
        Order order = Order.asc("ward.id");
        wardList = propertyDAO.getPropMaterlizeViewList(projection, conjun, order);
    }
    LOGGER.debug("Ward list : " + (wardList != null ? wardList : ZERO));
    LOGGER.debug("Exit from getWardList method");
    return wardList;
}

From source file:org.egov.ptis.actions.reports.ZoneWiseDemandAction.java

License:Open Source License

@Override
public String execute() {
    LOGGER.debug("Entered into execute method");
    String target = "failure";
    List zoneDemandList;//w w w. j a v  a  2  s .c  o m
    LinkedList<Map<String, Object>> links;
    try {
        HttpServletRequest request = ServletActionContext.getRequest();
        // criterion object consists of statements that needs to done in
        // where clause
        Criterion criterion = null;
        // Projection object consists of the fields that are required in
        // select statements
        Projection projection = Projections.projectionList().add(Projections.property("zone.id"))
                .add(Projections.sum("aggrArrDmd")).add(Projections.sum("aggrCurrDmd"))
                .add(Projections.groupProperty("zone.id"));
        // In Order object we can mention the order in which result needs to
        // displayed.
        Order order = Order.asc("zone.id");
        zoneDemandList = propertyDAO.getPropMaterlizeViewList(projection, criterion, order);
        LOGGER.debug("Zone wise demand list : " + (zoneDemandList != null ? zoneDemandList : ZERO));
        links = prepareDispTagList(zoneDemandList);
        request.setAttribute("links", links);
        target = "success";
    } catch (Exception e) {
        target = "failure";
        LOGGER.error("Error in ZoneWiseDemandAction : " + e.getMessage());
        throw new ApplicationRuntimeException("error in ZoneWiseDemandAction---------------", e);
    }
    LOGGER.debug("Exit from execute method");
    return target;
}

From source file:org.encuestame.persistence.dao.imp.FrontEndDao.java

License:Apache License

@SuppressWarnings("unchecked")
public List<Hit> getHashTagHitsRange(final Long tagId, final SearchPeriods period) {

    final DetachedCriteria criteria = DetachedCriteria.forClass(Hit.class);
    criteria.createAlias("hashTag", "hashTag");
    criteria.add(Restrictions.eq("hashTag.hashTagId", tagId));
    criteria.addOrder(Order.desc("hitDate"));

    // define as a VISIT category
    criteria.add(Restrictions.eq("hitCategory", HitCategory.VISIT));

    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.groupProperty("hitDate"));

    projList.add(Projections.rowCount());
    criteria.setProjection(projList);// w ww .  ja va2s  . com
    return (List<Hit>) getHibernateTemplate().findByCriteria(criteria);

}

From source file:org.encuestame.persistence.dao.imp.PollDao.java

License:Apache License

@SuppressWarnings("unchecked")
public List<Object[]> getPollsRangeStats(final String tagName, final SearchPeriods period) {
    final DetachedCriteria detached = DetachedCriteria.forClass(Poll.class).createAlias("hashTags", "hashTags")
            .setProjection(Projections.id())
            .add(Subqueries.propertyIn("hashTags.hashTagId",
                    DetachedCriteria.forClass(HashTag.class, "hash").setProjection(Projections.id())
                            .add(Restrictions.in("hash.hashTag", new String[] { tagName }))));
    final DetachedCriteria criteria = DetachedCriteria.forClass(Poll.class, "poll");
    criteria.add(Subqueries.propertyIn("poll.pollId", detached));
    criteria.addOrder(Order.desc("poll.createDate"));

    criteria.add(Restrictions.eq("publish", Boolean.TRUE));
    calculateSearchPeriodsDates(period, criteria, "createDate");
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.groupProperty("createDate"));
    projList.add(Projections.rowCount());
    criteria.setProjection(projList);/*from w  w w  . j av  a 2s  .co m*/
    return (List<Object[]>) getHibernateTemplate().findByCriteria(criteria);
}

From source file:org.encuestame.persistence.dao.imp.SurveyDaoImp.java

License:Apache License

@SuppressWarnings("unchecked")
public List<Object[]> getSurveysRangeStats(final String tagName, final SearchPeriods period) {
    final DetachedCriteria detached = DetachedCriteria.forClass(Survey.class)
            .createAlias("hashTags", "hashTags").setProjection(Projections.id())
            .add(Subqueries.propertyIn("hashTags.hashTagId",
                    DetachedCriteria.forClass(HashTag.class, "hash").setProjection(Projections.id())
                            .add(Restrictions.in("hash.hashTag", new String[] { tagName }))));
    final DetachedCriteria criteria = DetachedCriteria.forClass(Survey.class, "survey");
    criteria.add(Subqueries.propertyIn("survey.sid", detached));
    criteria.addOrder(Order.desc("survey.createDate"));
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.groupProperty("createDate"));
    projList.add(Projections.rowCount());
    criteria.setProjection(projList);//from   w w  w.  j  a v a  2 s  .  c  om
    return (List<Object[]>) getHibernateTemplate().findByCriteria(criteria);
}

From source file:org.encuestame.persistence.dao.imp.TweetPollDao.java

License:Apache License

@SuppressWarnings("unchecked")
//FUTURE: this method return a List<Object[]> instead List<TweetPoll>
public List<TweetPoll> getTweetPollsbyHashTagNameAndDateRange(final String tagName,
        final SearchPeriods period) {
    final DetachedCriteria detached = DetachedCriteria.forClass(TweetPoll.class)
            .createAlias("hashTags", "hashTags").setProjection(Projections.id())
            .add(Subqueries.propertyIn("hashTags.hashTagId",
                    DetachedCriteria.forClass(HashTag.class, "hash").setProjection(Projections.id())
                            .add(Restrictions.in("hash.hashTag", new String[] { tagName }))));
    final DetachedCriteria criteria = DetachedCriteria.forClass(TweetPoll.class, "tweetPoll");
    criteria.add(Subqueries.propertyIn("tweetPoll.tweetPollId", detached));
    criteria.addOrder(Order.desc("tweetPoll.createDate"));
    criteria.add(Restrictions.eq("publishTweetPoll", Boolean.TRUE));
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.groupProperty("createDate"));
    projList.add(Projections.rowCount());
    criteria.setProjection(projList);//from www.jav  a 2s .  c  o  m
    // calculateSearchPeriodsDates(period, criteria, "createDate");

    return (List<TweetPoll>) getHibernateTemplate().findByCriteria(criteria);
}

From source file:org.encuestame.persistence.dao.imp.TweetPollDao.java

License:Apache License

@SuppressWarnings("unchecked")
public List<Object[]> getTweetPollsRangeStats(final String tagName, final SearchPeriods period) {
    final DetachedCriteria detached = DetachedCriteria.forClass(TweetPoll.class)
            .createAlias("hashTags", "hashTags").setProjection(Projections.id())
            .add(Subqueries.propertyIn("hashTags.hashTagId",
                    DetachedCriteria.forClass(HashTag.class, "hash").setProjection(Projections.id())
                            .add(Restrictions.in("hash.hashTag", new String[] { tagName }))));
    final DetachedCriteria criteria = DetachedCriteria.forClass(TweetPoll.class, "tweetPoll");
    criteria.add(Subqueries.propertyIn("tweetPoll.tweetPollId", detached));
    criteria.addOrder(Order.desc("tweetPoll.createDate"));
    criteria.add(Restrictions.eq("publishTweetPoll", Boolean.TRUE));
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.groupProperty("createDate"));
    projList.add(Projections.rowCount());
    criteria.setProjection(projList);/*w  w  w .  j ava  2  s . c o  m*/
    calculateSearchPeriodsDates(period, criteria, "createDate");

    return (List<Object[]>) getHibernateTemplate().findByCriteria(criteria);
}

From source file:org.eurocarbdb.dataaccess.indexes.IndexByMostEvidence.java

License:Open Source License

public void apply(Criteria query) {
    /*  /*from ww w . j  a  v a  2 s . co m*/
    *   the query for this index requires a horrible hibernate hack.
    *   basically, the incoming Criteria query depends on an SQL 
    *   'group by', which, due to Hibernate limitations, screws over 
    *   the select clause. So, we attach a results transformer to the
    *   query that post-processes the result set from a list of 
    *   GlycanSequence ids into GlycanSequence objects through a
    *   separate query.
    */
    query.createAlias("glycanEvidence", "gs2ev", LEFT_JOIN)
            .setProjection(Projections.projectionList().add(Projections.groupProperty("glycanSequenceId"))
                    .add(Projections.count("gs2ev.evidence").as("ev")))
            .addOrder(Order.desc("ev")).setResultTransformer(new PassThroughResultTransformer() {
                public List transformList(List results) {
                    if (results == null || results.size() == 0)
                        return results;

                    List<Object[]> rows = (List<Object[]>) results;

                    //  the lookup hash
                    Map<Integer, GlycanSequence> hash = new HashMap<Integer, GlycanSequence>(results.size());

                    //  gather the sequence ids 
                    List<Integer> ids = new ArrayList<Integer>(results.size());
                    for (Object[] columns : rows)
                        ids.add((Integer) columns[0]);

                    //  look them up
                    List<GlycanSequence> seqs = (List<GlycanSequence>) getEntityManager()
                            .createQuery(GlycanSequence.class).add(Restrictions.in("glycanSequenceId", ids))
                            .setFetchSize(ids.size())
                            // .setCacheable( true )
                            .list();

                    for (GlycanSequence seq : seqs)
                        hash.put(seq.getGlycanSequenceId(), seq);

                    seqs.clear();

                    for (Integer id : ids)
                        seqs.add(hash.get(id));

                    return seqs;
                }
                /*
                    public Object transformTuple( Object[] tuple, String[] aliases )
                    {
                        int id = (Integer) tuple[0];
                        return getEntityManager().lookup( GlycanSequence.class, id );
                    }
                */
            });

    /* // attempt 2
            query
    .createAlias("glycanEvidence", "gs2ev", LEFT_JOIN ) 
    .addOrder( 
        new Order( "irrelevant", false ) 
        {
            public final String toSqlString( Criteria c, CriteriaQuery q )
            {
                // return "count( gs2ev.evidence_id ) desc";       
                return "count( "
                    + "gs2ev1_"//q.getSQLAlias( query, "glycanEvidence" )
                    + ".evidence_id ) desc";       
            }
        }
    )
            ;
    */
    /* // attempt 3
            query
    .createAlias("glycanEvidence", "gs2ev", LEFT_JOIN )  
    .setProjection( 
        Projections.groupProperty("glycanSequenceId").as("glycanSequenceId")
    )
    .addOrder( 
        new Order( "irrelevant", false ) 
        {
            public final String toSqlString( Criteria c, CriteriaQuery q )
            {
                // return "count( gs2ev.evidence_id ) desc";       
                return "count( "
                    + "gs2ev1_"//q.getSQLAlias( query, "glycanEvidence" )
                    + ".evidence_id ) desc";       
            }
        }
    )
    .setResultTransformer( 
        org.hibernate.transform.Transformers.aliasToBean( 
            GlycanSequence.class ) ) 
            ;
    */
}

From source file:org.gaixie.micrite.car.dao.hibernate.CarfileDAOImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
public List findCSGroupByTelVague(SearchBean[] queryBean) {
    DetachedCriteria criteria = SearchFactory.generateCriteria(Carfile.class, queryBean);
    criteria.add(Expression.eq("status", ICarfileService.STATUS_NORMAL));
    criteria.addOrder(Order.desc("editDate"));
    criteria.createAlias("carType", "cs");
    criteria.setProjection(Projections.projectionList().add(Projections.count("cs.name"))
            .add(Projections.groupProperty("cs.name")));
    List<Carfile> list = getHibernateTemplate().findByCriteria(criteria);
    //        desidedExpiredFlag(list);
    return list;// ww w  .  j  a v a 2s. c o m
}

From source file:org.gaixie.micrite.crm.dao.hibernate.CustomerDAOImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
public List findCSGroupByTelVague(SearchBean[] queryBean) {
    DetachedCriteria criteria = SearchFactory.generateCriteria(Carowner.class, queryBean);
    criteria.createAlias("customerSource", "cs");
    criteria.setProjection(Projections.projectionList().add(Projections.count("cs.name"))
            .add(Projections.groupProperty("cs.name")));
    return getHibernateTemplate().findByCriteria(criteria);
}