Example usage for org.hibernate.criterion Projections count

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

Introduction

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

Prototype

public static CountProjection count(String propertyName) 

Source Link

Document

A property value count projection

Usage

From source file:ar.com.zauber.commons.repository.aggregate.ProjectionAggregateFunctionVisitor.java

License:Apache License

/** crea projecciones en base a {@link PropertyAggregateFunction}. */
private static Projection createPropertyProjection(final PropertyAggregateFunction paf) {
    final String propertyName = paf.getProperty();
    final Projection projection;

    if (paf instanceof AveragePropertyAggregateFunction) {
        projection = Projections.avg(propertyName);
    } else if (paf instanceof CountDistinctPropertyAggregateFunction) {
        projection = Projections.countDistinct(propertyName);
    } else if (paf instanceof CountPropertyAggregateFunction) {
        projection = Projections.count(propertyName);
    } else if (paf instanceof MaxPropertyAggregateFunction) {
        projection = Projections.max(propertyName);
    } else if (paf instanceof MinPropertyAggregateFunction) {
        projection = Projections.min(propertyName);
    } else if (paf instanceof SumPropertyAggregateFunction) {
        projection = Projections.sum(propertyName);
    } else if (paf instanceof GroupPropertyAggregateFilter) {
        projection = Projections.groupProperty(propertyName);
    } else {//from   w w w . j a  va  2 s . c o m
        throw new IllegalArgumentException("don't know how to process " + paf.getClass());
    }

    return projection;
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.ResourcePermissionDao.java

License:Open Source License

@Override
public void delete(ResourcePermission perm) {
    /* We need to delete any user locks of this permission. */
    int num = (Integer) this.session.createCriteria(UserLock.class)
            .add(Restrictions.eq("resourcePermission", perm)).setProjection(Projections.count("id"))
            .uniqueResult();/*from  w w  w  .  j  a va  2 s. c o m*/
    if (num > 0) {
        /* Delete all user locks. */
        this.logger.debug("To delete resource permission '" + perm.getId() + "', " + num + " user locks have to"
                + " removed.");
        this.session.beginTransaction();
        int numDeleted = this.session.createQuery("delete UserLock ul where ul.resourcePermission = :perm")
                .setEntity("perm", perm).executeUpdate();

        this.logger.debug("Deleted " + numDeleted + " user locks when deleting resource permission '"
                + perm.getId() + "'.");
        this.session.getTransaction().commit();
    }

    /* Null out the sessions which use this resource permission. */
    num = (Integer) this.session
            .createCriteria(au.edu.uts.eng.remotelabs.schedserver.dataaccess.entities.Session.class)
            .add(Restrictions.eq("resourcePermission", perm)).setProjection(Projections.count("id"))
            .uniqueResult();
    if (num > 0) {
        this.logger.debug("To delete resource permission '" + perm.getId() + "', " + num + " sessions need the "
                + "resource permission nulled.");
        this.session.beginTransaction();
        int numDeleted = this.session.createQuery("update Session ses set ses.resourcePermission = null "
                + "where ses.resourcePermission = :perm").setEntity("perm", perm).executeUpdate();

        this.logger.debug("Updated " + numDeleted + " session records when deleting resource permission '"
                + perm.getId() + "'.");
        this.session.getTransaction().commit();
    }

    /* Null out the bookings which use this resource permission. */
    num = (Integer) this.session.createCriteria(Bookings.class).add(Restrictions.eq("resourcePermission", perm))
            .setProjection(Projections.count("id")).uniqueResult();
    if (num > 0) {
        this.logger.debug("To delete resource permission '" + perm.getId() + "', " + num + " bookings need to "
                + "be deleted.");
        this.session.beginTransaction();
        int numDeleted = this.session.createQuery("delete Bookings bk where bk.resourcePermission = :perm")
                .setEntity("perm", perm).executeUpdate();

        this.logger.debug("Updated " + numDeleted + " bookings records when deleting resource permission '"
                + perm.getId() + "'.");
        this.session.getTransaction().commit();
    }

    /* Finally delete the permission. */
    super.delete(perm);
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.UserClassDao.java

License:Open Source License

/**
 * Deletes all the user associations that contain the specified user class.
 * /*from w  w w .  ja v  a2 s  .  com*/
 * @param uc user class whose associations to delete
 */
public void deleteUserAssociations(UserClass uc) {
    int num = (Integer) this.session.createCriteria(UserAssociation.class).add(Restrictions.eq("userClass", uc))
            .setProjection(Projections.count("user")).uniqueResult();
    if (num > 0) {
        /* Delete all user associations. */
        this.logger.debug("To delete user class '" + uc.getName() + "', " + num + " user associations have to"
                + " removed.");
        this.session.beginTransaction();
        int numDeleted = this.session.createQuery("delete UserAssociation ua where ua.userClass = :userclass")
                .setEntity("userclass", uc).executeUpdate();

        this.logger.info("Deleted " + numDeleted + " user associations when deleting user class '"
                + uc.getName() + "'.");
        this.session.getTransaction().commit();
    }
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.UserClassKeyDao.java

License:Open Source License

@Override
public void delete(UserClassKey key) {
    this.logger.info("Deleting user class key '" + key.getRedeemKey() + "'.");

    /* Delete all constraints. */
    if (key.getConstraints().size() > 0) {
        this.session.beginTransaction();
        for (UserClassKeyConstraint constraint : key.getConstraints()) {
            this.session.delete(constraint);
        }//from w w  w  .ja va  2 s .c om
        this.session.getTransaction().commit();
    }

    /* As there are potentially a large number of redepemtions, a DML
     * operation is used. */
    int num = (Integer) this.session.createCriteria(UserClassKeyRedemption.class)
            .add(Restrictions.eq("classKey", key)).setProjection(Projections.count("id")).uniqueResult();
    if (num > 0) {
        /* Delete all redemptions. */
        this.logger.debug("To delete user class key '" + key.getRedeemKey() + "', " + num
                + " redemptions have to" + " deleted.");
        this.session.beginTransaction();
        int numDeleted = this.session.createQuery(
                "delete " + UserClassKeyRedemption.class.getSimpleName() + " uk where uk.classKey = :key")
                .setEntity("key", key).executeUpdate();

        this.logger.info("Deleted " + numDeleted + " redemptions when deleting user class key '"
                + key.getRedeemKey() + "'.");
        this.session.getTransaction().commit();
    }

    super.delete(key);
}

From source file:au.org.theark.lims.model.dao.BiospecimenDao.java

License:Open Source License

public boolean studyHasBiospecimens(Study study) {
    Criteria criteria = getSession().createCriteria(Biospecimen.class);
    criteria.add(Restrictions.eq("study", study));
    criteria.setProjection(Projections.count("id"));
    Long count = (Long) criteria.uniqueResult();
    return count > 0;
}

From source file:au.org.theark.lims.model.dao.InventoryDao.java

License:Open Source License

public boolean boxesExist() {
    Criteria criteria = getSession().createCriteria(InvBox.class);
    criteria.setProjection(Projections.count("id"));
    Long count = (Long) criteria.uniqueResult();
    return count > 0L;
}

From source file:au.org.theark.lims.model.dao.InventoryDao.java

License:Open Source License

public boolean hasAllocatedCells(InvBox invBox) {
    Criteria criteria = getSession().createCriteria(InvCell.class);
    criteria.add(Restrictions.eq("invBox", invBox));
    criteria.add(Restrictions.isNotNull("biospecimen"));
    criteria.setProjection(Projections.count("id"));
    Long count = (Long) criteria.uniqueResult();
    return count > 0L;
}

From source file:au.org.theark.study.model.dao.StudyDao.java

License:Open Source License

public long getRelationshipCount(final String subjectUID, final Long studyId) {
    long count = 0;
    Criteria criteria = getSession().createCriteria(LinkSubjectPedigree.class, "lsp");
    criteria.createAlias("subject", "sub", JoinType.INNER_JOIN);
    criteria.createAlias("relative", "rel", JoinType.INNER_JOIN);
    criteria.createAlias("sub.study", "substudy", JoinType.INNER_JOIN);
    criteria.createAlias("rel.study", "relstudy", JoinType.INNER_JOIN);
    criteria.add(Restrictions.eq("substudy.id", studyId));
    criteria.add(Restrictions.eq("relstudy.id", studyId));
    Disjunction or = Restrictions.disjunction();
    or.add(Restrictions.eq("sub.subjectUID", subjectUID));
    or.add(Restrictions.eq("rel.subjectUID", subjectUID));
    criteria.add(or);/*  w  ww.  ja  v a2  s  . co m*/
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.count("lsp.id"));
    criteria.setProjection(projList);
    List list = criteria.list();
    if (list.size() > 0) {
        count = Integer.parseInt(list.get(0).toString());
    }
    return count;
}

From source file:br.com.muranodesign.dao.impl.ObjetivoDAOImpl.java

License:Creative Commons License

public long listarRoteiroTotal(int id) {
    Criteria criteria = getSession().createCriteria(Objetivo.class);
    criteria.createAlias("roteiro", "roteiro");
    criteria.add(Restrictions.eq("roteiro.idroteiro", id));
    criteria.add(Restrictions.eq("roteiro.ativo", 1));

    criteria.setProjection(Projections.count("ativo"));

    long result = (Long) criteria.list().get(0);
    return result;
}

From source file:br.com.muranodesign.dao.impl.ObjetivoDAOImpl.java

License:Creative Commons License

public long listarGrafico(int id) {
    Criteria criteria = getSession().createCriteria(Objetivo.class);
    criteria.add(Restrictions.eq("ativo", 1));
    criteria.createAlias("roteiro", "roteiro");
    criteria.add(Restrictions.eq("roteiro.ativo", 1));
    criteria.add(Restrictions.eq("roteiro.anoEstudo.idanoEstudo", id));
    criteria.setProjection(Projections.count("ativo"));

    long result = (Long) criteria.list().get(0);
    return result;
}