List of usage examples for org.hibernate.criterion Projections min
public static AggregateProjection min(String propertyName)
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(); }