Example usage for org.hibernate.criterion ProjectionList add

List of usage examples for org.hibernate.criterion ProjectionList add

Introduction

In this page you can find the example usage for org.hibernate.criterion ProjectionList add.

Prototype

public ProjectionList add(Projection projection) 

Source Link

Document

Add a projection to this list of projections

Usage

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);//from   www .java 2s .  c o  m
    return (List<Hit>) getHibernateTemplate().findByCriteria(criteria);

}

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

License:Apache License

/**
 * Get max-min tag frecuency.// ww  w .j  a v a 2  s .c  o  m
 *
 * @param tag
 * @param filter
 * @return
 */
@SuppressWarnings("unchecked")
public List<Object[]> getMaxMinTagFrecuency() {
    final DetachedCriteria criteria = DetachedCriteria.forClass(HashTag.class);
    ProjectionList projectList = Projections.projectionList();
    projectList.add(Projections.max("hits"));
    projectList.add(Projections.min("hits"));
    criteria.setProjection(projectList);
    return (List<Object[]>) 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 ww . ja  va 2s.c  o 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  a2 s .com
    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 . j  av a2 s .c  om*/
    // 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  ww .j a v  a 2 s  .  c om
    calculateSearchPeriodsDates(period, criteria, "createDate");

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

From source file:org.eurekastreams.server.persistence.mappers.db.GetCommentsByIdsDbMapper.java

License:Apache License

/**
 * Return list of fully populated CommentDTOs for provided comment ids, respecting order of request ids.
 * /*from  w ww.  jav a 2  s .  c om*/
 * @param inRequest
 *            of comment ids.
 * @return List of fully populated CommentDTOs for provided comment ids, respecting order of request ids.
 */
@Override
public List<CommentDTO> execute(final List<Long> inRequest) {
    if (inRequest == null || inRequest.size() == 0) {
        return new ArrayList<CommentDTO>(0);
    }

    Criteria criteria = getHibernateSession().createCriteria(Comment.class);
    ProjectionList fields = Projections.projectionList();
    fields.add(getColumn("id"));
    fields.add(getColumn("body"));
    fields.add(getColumn("timeSent"));
    fields.add(Projections.property("author.id").as("authorId"));
    fields.add(Projections.property("target.id").as("activityId"));
    criteria.setProjection(fields);

    criteria.setResultTransformer(resultTransformer);

    criteria.add(Restrictions.in("this.id", inRequest));

    List<CommentDTO> commentDTOs = criteria.list();

    // Fully populate and cache the new DTOs
    commentDTOPopulator.execute(commentDTOs, null);

    return orderResults(inRequest, commentDTOs);
}

From source file:org.eurekastreams.server.persistence.mappers.db.GetIdsFromPointersDbMapper.java

License:Apache License

/**
 * Get the entity ids from their pointer values.
 *
 * @param inPointerValues/*w  w  w.ja va  2s .c o m*/
 *            the values of the pointers to look up ids for
 * @return a Map of pointer values to Long entity ids
 */
@Override
public List<Long> execute(final List<PointerType> inPointerValues) {
    if (inPointerValues == null || inPointerValues.size() == 0) {
        return new ArrayList<Long>();
    }

    Criteria criteria = getHibernateSession().createCriteria(entityClass);
    ProjectionList fields = Projections.projectionList();
    fields.add(Projections.property("id").as("itemId"));
    criteria.setProjection(fields);

    // Creates the necessary "OR" clauses to get all uncached item pointers
    Criterion restriction = null;
    for (PointerType pointer : inPointerValues) {
        if (restriction == null) {
            restriction = Restrictions.eq(pointerFieldName, pointer);
        } else {
            restriction = Restrictions.or(Restrictions.eq(pointerFieldName, pointer), restriction);
        }
    }

    criteria.add(restriction);
    return criteria.list();
}

From source file:org.eurekastreams.server.persistence.mappers.db.GetOrganizationsByIdsDbMapper.java

License:Apache License

/**
 * Looks in cache for the necessary DTOs and returns them if found. Otherwise, makes a database call, puts them in
 * cache, and returns them.//from ww w .  j a v  a2 s . co  m
 * 
 * @param ids
 *            the list of ids that should be found.
 * @return list of DTO objects.
 */
@SuppressWarnings("unchecked")
public List<OrganizationModelView> execute(final List<Long> ids) {
    if (ids == null || ids.size() == 0) {
        return new ArrayList<OrganizationModelView>();
    }

    Criteria criteria = getHibernateSession().createCriteria(Organization.class);
    ProjectionList fields = Projections.projectionList();
    fields.add(getColumn("id"));
    fields.add(Projections.property("parentOrganization.id").as("parentOrganizationId"));
    fields.add(getColumn("description"));
    fields.add(getColumn("name"));
    fields.add(getColumn("shortName"));
    fields.add(getColumn("childOrganizationCount"));
    fields.add(getColumn("descendantGroupCount"));
    fields.add(getColumn("descendantEmployeeCount"));
    fields.add(Projections.property("employeeFollowerCount").as("followersCount"));
    fields.add(getColumn("updatesCount"));
    fields.add(getColumn("overview"));
    fields.add(Projections.property("stream.id").as("streamId"));
    fields.add(getColumn("bannerId"));
    fields.add(getColumn("url"));
    fields.add(getColumn("allUsersCanCreateGroups"));
    fields.add(getColumn("avatarId"));
    fields.add(getColumn("avatarCropSize"));
    fields.add(getColumn("avatarCropX"));
    fields.add(getColumn("avatarCropY"));
    criteria.setProjection(fields);

    criteria.createAlias("streamScope", "stream");

    // Creates the necessary "OR" clauses to get all uncached items
    Criterion restriction = null;
    for (Long orgId : ids) {
        if (restriction == null) {
            restriction = Restrictions.eq("this.id", orgId);
        } else {
            restriction = Restrictions.or(Restrictions.eq("this.id", orgId), restriction);
        }
    }
    criteria.add(restriction);

    ModelViewResultTransformer<OrganizationModelView> resultTransformer = //
            new ModelViewResultTransformer<OrganizationModelView>(new OrganizationModelViewFactory());
    criteria.setResultTransformer(resultTransformer);

    return criteria.list();
}

From source file:org.eurekastreams.server.persistence.mappers.db.GetTutorialVideosDbMapper.java

License:Apache License

/**
 * Gets set of tutorial videos dtos from the database.
 * /* w  w w  .jav  a 2s . c om*/
 * @param inRequest
 *            value is not used.
 * @return The set of {@link TutorialVideoDTO}s from db.
 */
@SuppressWarnings("unchecked")
@Override
public Set<TutorialVideoDTO> execute(final Long inRequest) {
    Criteria criteria = getHibernateSession().createCriteria(TutorialVideo.class);
    ProjectionList fields = Projections.projectionList();
    fields.add(getColumn("id"));
    fields.add(getColumn("page"));
    fields.add(getColumn("dialogTitle"));
    fields.add(getColumn("innerContentTitle"));
    fields.add(getColumn("innerContent"));
    fields.add(getColumn("videoUrl"));
    fields.add(getColumn("videoWidth"));
    fields.add(getColumn("videoHeight"));
    criteria.setProjection(fields);

    ModelViewResultTransformer<TutorialVideoDTO> resultTransformer = //
            new ModelViewResultTransformer<TutorialVideoDTO>(new TutorialVideoDTOFactory());

    criteria.setResultTransformer(resultTransformer);
    List<TutorialVideoDTO> tutorialVideoSet = criteria.list();

    return new HashSet<TutorialVideoDTO>(tutorialVideoSet);
}