Example usage for org.hibernate.criterion Projections min

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

Introduction

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

Prototype

public static AggregateProjection min(String propertyName) 

Source Link

Document

A property minimum value projection

Usage

From source file:com.klistret.cmdb.utility.hibernate.XPathCriteria.java

License:Open Source License

/**
 * Creates a Hibernate projection from an aggregate expression
 * //from  w w  w  .ja  v  a 2 s . co m
 * @param expression
 */
public Projection aggregate(String expression) {
    logger.debug("Creating projection based on aggregate expression [{}]", expression);

    FunctionCall fc = new FunctionCall(expression);
    RelativePathExpr rpe = fc.getRelativePath();

    HibernateRelativePath hrp = translate(rpe);

    /**
     * Confirm the last Hibernate step is a Hibernate property
     */
    HibernateStep last = hrp.getLastHibernateStep();
    if (last.getType() != Type.Property)
        throw new ApplicationException("Aggregation must act either on a Hibernate property or an XML column");

    /**
     * Property name with alias
     */
    String alias = aliasCache.get(last.getPrevious().getPath());
    String propertyName = alias == null ? last.getName() : String.format("%s.%s", alias, last.getName());

    /**
     * Only sum, avg, max, and min supported
     */
    switch (fc.getFunction()) {
    case sum:
        return last.isXml() ? new XPathAggregation("sum", propertyName, last.getStep())
                : Projections.sum(propertyName);
    case avg:
        return last.isXml() ? new XPathAggregation("avg", propertyName, last.getStep())
                : Projections.avg(propertyName);
    case max:
        return last.isXml() ? new XPathAggregation("max", propertyName, last.getStep())
                : Projections.max(propertyName);
    case min:
        return last.isXml() ? new XPathAggregation("min", propertyName, last.getStep())
                : Projections.min(propertyName);
    default:
        throw new InfrastructureException(String.format("Function call [%s] not handled.", fc.getFunction()));
    }
}

From source file:com.kodemore.hibernate.criteria.KmCriteria.java

License:Open Source License

public void selectMinimum(String name) {
    Projection e;
    e = Projections.min(getFullName(name));
    addProjection(e);
}

From source file:com.liferay.portal.dao.orm.hibernate.ProjectionFactoryImpl.java

License:Open Source License

public Projection min(String propertyName) {
    return new ProjectionImpl(Projections.min(propertyName));
}

From source file:com.qcadoo.model.api.search.SearchProjections.java

License:Open Source License

/**
 * Creates projection which add given field to the "GROUP BY" clause and its "min" to the "SELECT" clause.
 * //from  ww  w.j a v a  2s . co m
 * @param field
 *            field
 * @return projection
 */
public static SearchProjection min(final String field) {
    return new SearchProjectionImpl(Projections.min(field));
}

From source file:com.romeikat.datamessie.core.base.dao.impl.DocumentDao.java

License:Open Source License

public LocalDateTime getMinDownloaded(final SharedSessionContract ssc) {
    // Query: Document
    final EntityWithIdQuery<Document> documentQuery = new EntityWithIdQuery<>(Document.class);

    // Done/*from  w  w  w  .j a  v  a2s  .co m*/
    final Projection projection = Projections.min("downloaded");
    final LocalDateTime result = (LocalDateTime) documentQuery.uniqueForProjection(ssc, projection);
    return result;
}

From source file:com.segundo.piso.daos.impl.DAOReportImpl.java

@Override
@Transactional//from   w  w w .  java  2  s.  c  om
public List<ReporteAlumno> getStudentsByExpiredMovement(int clasesRestantes) {
    System.out.println(sessionFactory);
    StringBuilder restriction = new StringBuilder();
    restriction.append("date_add(movimiento1_.fecha_inicio, interval 31 day) > curdate() ").append(
            "and date_add(movimiento1_.fecha_inicio, interval 31 day) < date_add(current_date(), interval 10 day)")
            .append("and movimiento1_.id_movimiento = asistencia2_.id_movimiento ");

    return this.sessionFactory.getCurrentSession().createCriteria(Alumno.class, "alumno")
            .createAlias("alumno.movimientoList", "movimiento")
            .createAlias("alumno.asistenciaList", "asistencia").createAlias("movimiento.idEvento", "evento")
            .setProjection(Projections.projectionList().add(Projections.property("alumno.codigo"), "codigo")
                    .add(Projections.property("alumno.nombre"), "nombre")
                    .add(Projections.min("asistencia.diasRestantes"), "clasesRestantes")
                    .add(Projections.max("movimiento.idMovimiento"))
                    .add(Projections.property("alumno.idAlumno"), "idAlumno")
                    .add(Projections.max("movimiento.fechaInicio"), "fecha")
                    .add(Projections.groupProperty("alumno.idAlumno")))
            .add(Restrictions.sqlRestriction(restriction.toString()))
            .add(Restrictions.eq("movimiento.activo", true)).add(Restrictions.gt("evento.diasMes", 1))
            .setResultTransformer(Transformers.aliasToBean(ReporteAlumno.class))
            .addOrder(Order.desc("asistencia.diasRestantes")).list();
}

From source file:com.smartitengineering.dao.impl.hibernate.AbstractDAO.java

License:Open Source License

@SuppressWarnings("unchecked")
private void processCriteria(Criteria criteria, String element, QueryParameter parameter) {
    switch (parameter.getParameterType()) {
    case PARAMETER_TYPE_PROPERTY: {
        criteria.add(getCriterion(element, parameter));
        return;//from w  w w  .j  ava 2  s.co m
    }
    case PARAMETER_TYPE_ORDER_BY: {
        final Order order;
        SimpleNameValueQueryParameter<com.smartitengineering.dao.common.queryparam.Order> queryParameter = QueryParameterCastHelper.SIMPLE_PARAM_HELPER
                .cast(parameter);
        com.smartitengineering.dao.common.queryparam.Order requestedOrder = queryParameter.getValue();
        switch (requestedOrder) {
        case ASC: {
            order = Order.asc(element);
            break;
        }
        case DESC: {
            order = Order.desc(element);
            break;
        }
        default: {
            order = null;
            break;
        }
        }
        if (order != null) {
            criteria.addOrder(order);
        }
        return;
    }
    case PARAMETER_TYPE_MAX_RESULT: {
        ValueOnlyQueryParameter<Integer> queryParameter = QueryParameterCastHelper.VALUE_PARAM_HELPER
                .cast(parameter);
        criteria.setMaxResults(queryParameter.getValue());
        return;
    }
    case PARAMETER_TYPE_FIRST_RESULT: {
        ValueOnlyQueryParameter<Integer> queryParameter = QueryParameterCastHelper.VALUE_PARAM_HELPER
                .cast(parameter);
        criteria.setFirstResult(queryParameter.getValue());
        return;
    }
    case PARAMETER_TYPE_DISJUNCTION: {
        processDisjunction(criteria, parameter);
        return;
    }
    case PARAMETER_TYPE_CONJUNCTION: {
        processConjunction(criteria, parameter);
        return;
    }
    case PARAMETER_TYPE_NESTED_PROPERTY: {
        processNestedParameter(criteria, element, parameter);
        return;
    }
    case PARAMETER_TYPE_COUNT: {
        final Projection countProjection = Projections.count(element);
        setProjection(criteria, countProjection);
        return;
    }
    case PARAMETER_TYPE_ROW_COUNT: {
        final Projection rowCount = Projections.rowCount();
        setProjection(criteria, rowCount);
        return;
    }
    case PARAMETER_TYPE_SUM: {
        final AggregateProjection sum = Projections.sum(element);
        setProjection(criteria, sum);
        return;
    }
    case PARAMETER_TYPE_MAX: {
        final AggregateProjection max = Projections.max(element);
        setProjection(criteria, max);
        return;
    }
    case PARAMETER_TYPE_MIN: {
        final AggregateProjection min = Projections.min(element);
        setProjection(criteria, min);
        return;
    }
    case PARAMETER_TYPE_AVG: {
        final AggregateProjection avg = Projections.avg(element);
        setProjection(criteria, avg);
        return;
    }
    case PARAMETER_TYPE_GROUP_BY: {
        final PropertyProjection groupProperty = Projections.groupProperty(element);
        setProjection(criteria, groupProperty);
        return;
    }
    case PARAMETER_TYPE_COUNT_DISTINCT: {
        final CountProjection countDistinct = Projections.countDistinct(element);
        setProjection(criteria, countDistinct);
        return;
    }
    case PARAMETER_TYPE_DISTINCT_PROP: {
        final Projection distinct = Projections.distinct(Projections.property(element));
        setProjection(criteria, distinct);
        return;
    }
    case PARAMETER_TYPE_UNIT_PROP: {
        final PropertyProjection property = Projections.property(element);
        setProjection(criteria, property);
        return;
    }
    }
}

From source file:data.dao.parent.Dao.java

public List<T> findMin(String name) {
    DetachedCriteria minId = DetachedCriteria.forClass(getSupportedClass())
            .setProjection(Projections.min(name));
    Criteria cr = currentSession().createCriteria(getSupportedClass());
    cr.add(Property.forName(name).eq(minId));
    return cr.list();
}

From source file:db.provider.UserAuthenticationProvider.java

public List whereTest() {

    this.session = SESSION_FACTORY.openSession();
    this.transaction = null;
    this.resultList = null;
    List list = null;//from   w  w w.ja v a 2  s  . c o m
    try {

        this.transaction = this.session.beginTransaction();
        this.criteria = this.session.createCriteria(UserAuthentication.class);

        this.criteria.add(Restrictions.like("username", "Changed Username"));

        this.criteria.setProjection(Projections.min("id"));
        list = this.criteria.list();
        this.transaction.commit();
    } catch (Exception e) {

        if (this.transaction != null) {

            this.transaction.rollback();
        }
    } finally {

        this.session.close();
    }

    return list;
}

From source file:es.sm2.openppm.core.dao.HistorickpiDAO.java

License:Open Source License

/**
 * Min value// ww w  .j a  va2s  .c  om
 * 
 * @param kpi
 * @return 
 */
public Double minValue(Projectkpi kpi) {

    Criteria crit = getSession().createCriteria(getPersistentClass());

    crit.add(Restrictions.eq(Historickpi.PROJECTKPI, kpi)).setProjection(Projections.min(Historickpi.VALUEKPI));

    return (Double) crit.uniqueResult();
}