Example usage for org.hibernate.criterion DetachedCriteria setProjection

List of usage examples for org.hibernate.criterion DetachedCriteria setProjection

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria setProjection.

Prototype

public DetachedCriteria setProjection(Projection projection) 

Source Link

Document

Set the projection to use.

Usage

From source file:org.workin.persistence.hibernate.v4.dao.Hibernate4PersistenceDaoImpl.java

License:Apache License

@Override
public long countByCriteria(final DetachedCriteria criteria, final boolean distinct) {
    if (distinct)
        criteria.setProjection(Projections.distinct(Projections.rowCount()));
    else//from www  . j a  v  a  2s  . c o  m
        criteria.setProjection(Projections.rowCount());

    Criteria executableCriteria = criteria.getExecutableCriteria(getCurrentSession());
    return (Long) executableCriteria.uniqueResult();
}

From source file:org.zanata.model.validator.UniqueValidator.java

License:Open Source License

private int countRows(Object value) {
    // we need to use entityManager.unwrap because  injected session will
    // be a weld proxy and criteria.getExecutableCriteria method will try
    // to cast it to SessionImplementor (ClassCastException)
    Session session = entityManager.unwrap(Session.class);
    ClassMetadata metadata = session.getSessionFactory().getClassMetadata(value.getClass());
    String idName = metadata.getIdentifierPropertyName();
    // FIXME was EntityMode.POJO
    Serializable id = metadata.getIdentifier(value, null);

    DetachedCriteria criteria = DetachedCriteria.forClass(value.getClass());
    for (String property : parameters.properties()) {
        // FIXME was EntityMode.POJO
        criteria.add(Restrictions.eq(property, metadata.getPropertyValue(value, property)));
    }/*from   w  w  w  .  j av  a2 s.  c  om*/

    // Id property
    if (id != null) {
        criteria.add(Restrictions.ne(idName, id));
    }
    criteria.setProjection(Projections.rowCount());

    // change the flush mode temporarily to perform the query or else
    // incomplete entities will try to get flushed
    // After the query, go back to the original mode
    FlushMode flushMode = session.getFlushMode();
    session.setFlushMode(FlushMode.MANUAL);
    List results = criteria.getExecutableCriteria(session).list();
    Number count = (Number) results.iterator().next();
    session.setFlushMode(flushMode);
    return count.intValue();
}

From source file:pe.gob.mef.gescon.hibernate.impl.ArchivoConocimientoDaoImpl.java

@Override
public TarchivoConocimiento getLastTarchivoByTconocimiento(Tconocimiento tconocimiento) throws Exception {
    DetachedCriteria proj = DetachedCriteria.forClass(TarchivoConocimiento.class);
    proj.setProjection(Projections.max("nversion"));
    DetachedCriteria criteria = DetachedCriteria.forClass(TarchivoConocimiento.class);
    criteria.add(Restrictions.eq("tconocimiento.nconocimientoid", tconocimiento.getNconocimientoid()));
    criteria.add(Property.forName("nversion").eq(proj));
    return (TarchivoConocimiento) DataAccessUtils.uniqueResult(getHibernateTemplate().findByCriteria(criteria));
}

From source file:pe.gob.mef.gescon.hibernate.impl.ArchivoHistorialDaoImpl.java

@Override
public TarchivoHist getLastTarchivoHistByTbaselegalHist(TbaselegalHist tbaselegal) throws Exception {
    DetachedCriteria proj = DetachedCriteria.forClass(TarchivoHist.class);
    proj.setProjection(Projections.max("nversion"));
    DetachedCriteria criteria = DetachedCriteria.forClass(TarchivoHist.class);
    criteria.add(Restrictions.eq("nhistorialid", tbaselegal.getNhistorialid()));
    criteria.add(Restrictions.eq("nbaselegalid", tbaselegal.getNbaselegalid()));
    criteria.add(Property.forName("nversion").eq(proj));
    return (TarchivoHist) DataAccessUtils.uniqueResult(getHibernateTemplate().findByCriteria(criteria));
}

From source file:pe.gob.mef.gescon.hibernate.impl.BaseLegalHistorialDaoImpl.java

@Override
public TbaselegalHist getLastThistorialByTbaselegal(BigDecimal idbaselegal) throws Exception {
    DetachedCriteria proj = DetachedCriteria.forClass(TbaselegalHist.class);
    proj.setProjection(Projections.max("nversion"));
    proj.add(Restrictions.eq("nbaselegalid", idbaselegal));
    DetachedCriteria criteria = DetachedCriteria.forClass(TbaselegalHist.class);
    criteria.add(Restrictions.eq("nbaselegalid", idbaselegal));
    criteria.add(Property.forName("nversion").eq(proj));
    return (TbaselegalHist) DataAccessUtils.uniqueResult(getHibernateTemplate().findByCriteria(criteria));
}

From source file:pe.gob.mef.gescon.hibernate.impl.DiscusionHistDaoImpl.java

@Override
public TdiscusionHist getTdiscusionHistByTconocimiento(BigDecimal idconocimiento) throws Exception {
    DetachedCriteria proj = DetachedCriteria.forClass(TdiscusionHist.class);
    proj.setProjection(Projections.max("nnumversion"));
    proj.add(Restrictions.eq("nconocimientoid", idconocimiento));
    DetachedCriteria criteria = DetachedCriteria.forClass(TdiscusionHist.class);
    criteria.add(Restrictions.eq("nconocimientoid", idconocimiento));
    criteria.add(Property.forName("nnumversion").eq(proj));
    return (TdiscusionHist) DataAccessUtils.uniqueResult(getHibernateTemplate().findByCriteria(criteria));
}

From source file:pe.gob.mef.gescon.hibernate.impl.HistorialDaoImpl.java

@Override
public Thistorial getLastThistorialByTconocimiento(BigDecimal idconocimiento) throws Exception {
    DetachedCriteria proj = DetachedCriteria.forClass(Thistorial.class);
    proj.setProjection(Projections.max("nnumversion"));
    proj.add(Restrictions.eq("id.nconocimientoid", idconocimiento));
    DetachedCriteria criteria = DetachedCriteria.forClass(Thistorial.class);
    criteria.add(Restrictions.eq("id.nconocimientoid", idconocimiento));
    criteria.add(Property.forName("nnumversion").eq(proj));
    return (Thistorial) DataAccessUtils.uniqueResult(getHibernateTemplate().findByCriteria(criteria));
}

From source file:pe.gob.mef.gescon.hibernate.impl.PassDaoImpl.java

@Override
public Tpass getTpassByMtuser(Mtuser mtuser) throws Exception {
    DetachedCriteria proj = DetachedCriteria.forClass(Tpass.class);
    proj.add(Restrictions.eq("id.nusuarioid", mtuser.getNusuarioid()));
    proj.setProjection(Projections.max("dfechacreacion"));
    DetachedCriteria criteria = DetachedCriteria.forClass(Tpass.class);
    criteria.add(Restrictions.eq("id.nusuarioid", mtuser.getNusuarioid()));
    criteria.add(Property.forName("dfechacreacion").eq(proj));
    return (Tpass) DataAccessUtils.uniqueResult(getHibernateTemplate().findByCriteria(criteria));
}

From source file:pl.touk.wonderfulsecurity.dao.WsecBaseDaoImpl.java

License:Apache License

public int fetchCount(final Map<String, ?> queryParameters, final Class clazz) {
    checkIsBeanMapped(clazz);//ww  w .j av  a2s  .  c  om
    Object o = getHibernateTemplate().execute(new HibernateCallback() {

        public Object doInHibernate(Session session) throws HibernateException, SQLException {
            DetachedCriteria criteria = buildCriteriaFromMapOfParameters(queryParameters, clazz);
            criteria.setProjection(Projections.rowCount());
            return criteria.getExecutableCriteria(session).uniqueResult();
        }
    });

    return o != null ? ((Number) o).intValue() : 0;
}

From source file:pula.sys.daos.impl.CourseClientDaoImpl.java

@Override
public PaginationSupport<MapBean> search(CourseClientCondition condition, int pageIndex) {
    DetachedCriteria dc = makeDetachedCriteria(condition);
    ProjectionList proList = Projections.projectionList();// ?

    proList = HibernateTool.injectSingle(proList, SINGLE_MAPPING, "uu");
    proList = HibernateTool.injectAlias(proList, ALIAS_MAPPING);
    dc.setProjection(proList);
    dc.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
    String dateField = "uu.applyTime";
    if (condition.isForApply()) {
        dateField = "uu.createdTime";
    }//from   w  w  w  .  j  a  v a 2 s  .c  o m
    PaginationSupport<Map<String, Object>> es = super.findPageByCriteria(dc, new PageInfo(pageIndex),
            Order.desc(dateField));
    return MapList.createPage(es);
}