Example usage for org.hibernate.criterion Projections property

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

Introduction

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

Prototype

public static PropertyProjection property(String propertyName) 

Source Link

Document

A property value projection

Usage

From source file:com.sccl.attech.modules.sys.service.DictService.java

License:Open Source License

public Page<Dict> find(Page<Dict> page, Dict dict) {
    // MyBatis /*  w  w  w  .  j  av  a  2s  .c o  m*/
    //      dict.setPage(page);
    //      page.setList(myBatisDictDao.find(dict));
    //      return page;
    // Hibernate 

    DetachedCriteria dc = dictDao.createDetachedCriteria();
    dc.setProjection(Projections.distinct(Projections.property("type")));
    if (StringUtils.isNotEmpty(dict.getLabel())) {
        dc.add(Restrictions.like("label", "%" + dict.getLabel() + "%"));
    }
    if (StringUtils.isNotEmpty(dict.getType())) {
        dc.add(Restrictions.eq("type", dict.getType()));
    }
    System.out.println(dict.getType());
    if (StringUtils.isNotEmpty(dict.getDescription())) {
        dc.add(Restrictions.like("description", "%" + dict.getDescription() + "%"));
    }

    //      if(StringUtils.isNotEmpty(dict.getParentId())){
    //         dc.add(Restrictions.sqlRestriction("parent_id = '"+dict.getParentId()+"'"));
    //         dc.add(Restrictions.like("parentIds", "%"+dict.getParentId()+"%"));//?
    //      }

    //      dc.add(Restrictions.sqlRestriction("parent_ids is not null"));
    dc.add(Restrictions.sqlRestriction("del_flag=0"));
    dc.add(Restrictions.eq(Dict.FIELD_DEL_FLAG, Dict.DEL_FLAG_NORMAL));

    dc.setResultTransformer(dc.DISTINCT_ROOT_ENTITY);
    return dictDao.find(page, dc);
}

From source file:com.scopix.periscope.securitymanagement.dao.UserLoginHibernateDAOImpl.java

License:Open Source License

@Override
public List<String> getUserPrivileges(PeriscopeUser periscopeUser) {
    List<String> privileges = null;
    List<Integer> rgIds = new ArrayList<Integer>();
    for (RolesGroup rolesGroup : periscopeUser.getRolesGroups()) {
        rgIds.add(rolesGroup.getId());//  w  w  w.ja v  a 2 s  .c o m
    }
    Criteria criteria = this.getSession().createCriteria(Role.class)
            .setProjection(Projections.property("roleName"));
    Criteria rg = criteria.createCriteria("rolesGroups");
    rg.add(Restrictions.in("id", rgIds));
    privileges = criteria.list();
    return privileges;
}

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

@Override
@Transactional/*w w  w  .j  av  a  2 s  .co m*/
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.segundo.piso.daos.impl.DAOReportImpl.java

@Override
@Transactional/* ww w  .  j ava  2s.  c  o  m*/
public List<ReporteClases> classesReport(Filters filters) {
    Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Asistencia.class, "attendence")
            .createAlias("attendence.idClase", "clase").createAlias("attendence.idAlumno", "alumno")
            .setProjection(Projections.projectionList()
                    .add(Projections.distinct(Projections.property("attendence.idAlumno")), "alumno")
                    .add(Projections.property("attendence.idClase"), "clase"))
            .addOrder(Order.asc("clase.nombreClase")).addOrder(Order.asc("alumno.nombre"))
            .setResultTransformer(Transformers.aliasToBean(ReporteClases.class));
    addFilters(filters, criteria);

    return criteria.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;/* w w w  .j a  v  a  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:com.socialsite.dao.hibernate.AbstractImageDaoImpl.java

License:Open Source License

public byte[] getImage(final long id) {
    final Criteria criteria = getSession().createCriteria(domainClass);
    criteria.add(Restrictions.idEq(id));
    criteria.setProjection(Projections.property("image"));
    return (byte[]) criteria.uniqueResult();
}

From source file:com.socialsite.dao.hibernate.AbstractImageDaoImpl.java

License:Open Source License

public Date getLastModifiedTime(final long id) {
    final Criteria criteria = getSession().createCriteria(domainClass);
    criteria.add(Restrictions.idEq(id));
    criteria.setProjection(Projections.property("lastModified"));
    return (Date) criteria.uniqueResult();
}

From source file:com.socialsite.dao.hibernate.AbstractImageDaoImpl.java

License:Open Source License

public byte[] getThumb(final long id) {
    final Criteria criteria = getSession().createCriteria(domainClass);
    criteria.add(Restrictions.idEq(id));
    criteria.setProjection(Projections.property("thumb"));
    return (byte[]) criteria.uniqueResult();
}

From source file:com.socialsite.dao.hibernate.ProfileDaoImpl.java

License:Open Source License

@Override
public Date getLastModifiedTime(final long id) {
    final Criteria criteria = getSession().createCriteria(User.class);
    criteria.add(Restrictions.idEq(id));
    criteria.setProjection(Projections.property("lastModified"));
    return (Date) criteria.uniqueResult();
}

From source file:com.square.adherent.noyau.dao.implementations.contrat.ContratDaoImpl.java

License:Open Source License

@Override
public List<RatioPrestationCotisationDto> getRatioPrestationCotisationPersonne(Long uidPersonne) {
    final Criteria crit = createCriteria(Ratio.class);
    final ProjectionList projectionList = Projections.projectionList();
    projectionList.add(Projections.property("ratioPrestaSurCotis"));
    projectionList.add(Projections.property("annee"));
    crit.setProjection(projectionList);/* ww  w. j  av  a  2 s .co m*/
    crit.add(Restrictions.eq("uidPersonne", uidPersonne));
    final List result = crit.list();

    final Iterator iterator = result.iterator();

    if (result == null) {
        return null;
    } else {
        double ratio = -1;
        int annee = -1;

        final List<RatioPrestationCotisationDto> listRatioDto = new ArrayList<RatioPrestationCotisationDto>();

        while (iterator.hasNext()) {
            final Object[] objects = (Object[]) iterator.next();

            ratio = ((Double) objects[0]).doubleValue();
            annee = ((Integer) objects[1]).intValue();

            final RatioPrestationCotisationDto ratioDto = new RatioPrestationCotisationDto();
            ratioDto.setAnnee(annee);
            ratioDto.setRatioPrestationCotisation(ratio);
            final IdentifiantLibelleDto personneDto = new IdentifiantLibelleDto(uidPersonne);
            ratioDto.setPersonne(personneDto);

            listRatioDto.add(ratioDto);
        }

        return listRatioDto;
    }
}