Example usage for org.hibernate.criterion Projections groupProperty

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

Introduction

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

Prototype

public static PropertyProjection groupProperty(String propertyName) 

Source Link

Document

A grouping property value projection

Usage

From source file:com.griffinslogistics.book.BookService.java

@Override
public List<BookModel> getBookModelsByTransportId(Long transportId) {
    logger.log(Level.SEVERE, "{0}: getBookModelsByTransportation started", CLASS_NAME);

    List<BookModel> resultList = new ArrayList<BookModel>();

    try {/*from w  w w.j  av  a 2  s  . c  o  m*/
        DetachedCriteria criteria = DetachedCriteria.forClass(Book.class);
        criteria.add(Restrictions.eq("transportId", transportId));
        criteria.setProjection(
                Projections.projectionList().add(Projections.groupProperty("bookNumber"), "bookNumber")
                        .add(Projections.property("title"), "title"))
                .setResultTransformer(Transformers.aliasToBean(BookModel.class));

        resultList = (List<BookModel>) this.dao.getAllByDetachedCriteria(criteria);
        Collections.reverse(resultList);

    } catch (HibernateException e) {

        logger.log(Level.SEVERE, e.getMessage());
    } finally {

        logger.log(Level.SEVERE, "{0}: getBookModelsByTransportation finished", CLASS_NAME);
    }

    return resultList;
}

From source file:com.griffinslogistics.db.helpers.BooksHelper.java

public List<BookModel> getBookModelsByTransportation(Transportation transportation) {
    logger.log(Level.SEVERE, "{0}: getBookModelsByTransportation started", CLASS_NAME);

    List<BookModel> resultList = new ArrayList<BookModel>();

    this.session = HibernateUtil.getSessionFactory().openSession();
    Transaction transaction = this.session.beginTransaction();

    try {/* w ww .j a  va  2s  .c  o  m*/
        Criteria criteria = this.session.createCriteria(Book.class);
        criteria.add(Restrictions.eq("transportation", transportation));
        criteria.setProjection(
                Projections.projectionList().add(Projections.groupProperty("bookNumber"), "bookNumber")
                        .add(Projections.property("title"), "title"))
                .setResultTransformer(Transformers.aliasToBean(BookModel.class));

        resultList = criteria.list();
        Collections.reverse(resultList);
        transaction.commit();
    } catch (HibernateException e) {
        transaction.rollback();
        logger.log(Level.SEVERE, e.getMessage());
    } finally {
        this.session.close();

        logger.log(Level.SEVERE, "{0}: getBookModelsByTransportation finished", CLASS_NAME);
    }

    return resultList;
}

From source file:com.heliosapm.aa4h.parser.XMLQueryParser.java

License:Apache License

/**
 * Adds a new projection to the current projectionList stack.
 * Mandatory Attributes:<ul>/*w  w w .ja  v  a2  s.  c o  m*/
 * <li><b>name</b>: The field to create a projection on.</li>
 * <li><b>type</b>: The projection type.</li>
 * <li><b>alias</b>: The name applied to the projection returned field.</li>
 * </ul>
 * @param attrs The attributes of the processed node.
 * @throws SAXException
 * TODO: Implement checks for mandatory attributes.
 */
public void addProjection(Attributes attrs) throws SAXException {
    ProjectionList projectionList = projectionStack.peek();
    if (projectionList == null) {
        throw new SAXException(
                "Attempted to add Projection and no ProjectionList Exists On The Stack. (Projection must be embedded inside a Projections)");
    }
    String type = attrs.getValue("type");
    String name = attrs.getValue("name");
    String alias = attrs.getValue("alias");
    if ("avg".equalsIgnoreCase(type)) {
        projectionList.add(Projections.avg(name), alias);
    } else if ("count".equalsIgnoreCase(type)) {
        projectionList.add(Projections.count(name), alias);
    } else if ("countDistinct".equalsIgnoreCase(type)) {
        projectionList.add(Projections.countDistinct(name), alias);
    } else if ("groupProperty".equalsIgnoreCase(type)) {
        projectionList.add(Projections.groupProperty(name), alias);
    } else if ("max".equalsIgnoreCase(type)) {
        projectionList.add(Projections.max(name), alias);
    } else if ("min".equalsIgnoreCase(type)) {
        projectionList.add(Projections.min(name), alias);
    } else if ("sum".equalsIgnoreCase(type)) {
        projectionList.add(Projections.sum(name), alias);
    } else if ("rowCount".equalsIgnoreCase(type)) {
        projectionList.add(Projections.rowCount(), alias);
    }

}

From source file:com.hibernate.dao.AsesinosDAO.java

@Override
public List<Asesinos> getAsesinosListByProjection() {

    List<Asesinos> peliculas1 = session.createCriteria(Asesinos.class)//.list();
            .setProjection(Projections.projectionList().add(Projections.rowCount())
                    .add(Projections.avg("personasasesinadas")).add(Projections.max("personasasesinadas"))
                    .add(Projections.groupProperty("formato").as("ao"))

            ).list();// ww w  . j a  v  a 2 s. c  o m

    return peliculas1;
}

From source file:com.hypersocket.repository.AbstractRepositoryImpl.java

License:Open Source License

@Override
public List<?> getCounts(Class<?> clz, String groupBy, CriteriaConfiguration... configs) {

    Criteria criteria = createCriteria(clz);

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);//from ww  w .jav a2  s  .  c om
    }

    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    criteria.setProjection(Projections.projectionList().add(Projections.groupProperty(groupBy))
            .add(Projections.count(groupBy)));

    return criteria.list();
}

From source file:com.inkubator.hrm.dao.impl.EmpCareerHistoryDaoImpl.java

@Override
public List<EmpCareerHistory> getByParamReport(ReportEmpMutationParameter searchParameter, int firstResult,
        int maxResults, Order order) {
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    criteria.createAlias("bioData", "bioData", JoinType.INNER_JOIN);
    criteria.createAlias("jabatan", "jabatan", JoinType.INNER_JOIN);
    doSearchEmpRotasiByParamReport(searchParameter, criteria);

    DetachedCriteria maxTglPengangkatanQuery = DetachedCriteria.forClass(getEntityClass());
    ProjectionList proj = Projections.projectionList();
    proj.add(Projections.max("tglPenganngkatan"));
    proj.add(Projections.groupProperty("nik"));
    maxTglPengangkatanQuery.setProjection(proj);

    criteria.add(Subqueries.propertiesIn(new String[] { "tglPenganngkatan", "nik" }, maxTglPengangkatanQuery));
    criteria.addOrder(order);//w w w. ja va 2s  . co m
    criteria.setFirstResult(firstResult);
    criteria.setMaxResults(maxResults);

    List<EmpCareerHistory> listEmpCareerHistorys = criteria.list();

    //Set Jabatan Lama/sebelumnya dari masing - masing record
    for (EmpCareerHistory ech : listEmpCareerHistorys) {
        Criteria criteriaOldPosition = getCurrentSession().createCriteria(getEntityClass());
        criteriaOldPosition.setFetchMode("jabatan", FetchMode.JOIN);
        criteriaOldPosition.add(Restrictions.eq("nik", ech.getNik()));
        criteriaOldPosition.add(Restrictions.lt("tglPenganngkatan", ech.getTglPenganngkatan()));
        criteriaOldPosition.addOrder(Order.desc("tglPenganngkatan"));
        criteriaOldPosition.setMaxResults(1);
        EmpCareerHistory prevPosition = (EmpCareerHistory) criteriaOldPosition.uniqueResult();

        //jika sebelumnya dia sudah pernah menjabat di posisi lain maka set oldJabatan dengan posisi tersebut
        if (null != prevPosition) {
            ech.setJabatanOldCode(prevPosition.getJabatan().getCode());
            ech.setJabatanOldName(prevPosition.getJabatan().getName());
        } else {
            ech.setJabatanOldCode("-");
        }
    }

    return listEmpCareerHistorys;
}

From source file:com.inkubator.hrm.dao.impl.EmpCareerHistoryDaoImpl.java

@Override
public Long getTotalEmpCareerHistoryDataByParamReport(ReportEmpMutationParameter searchParameter) {
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    doSearchEmpRotasiByParamReport(searchParameter, criteria);
    DetachedCriteria maxTglPengangkatanQuery = DetachedCriteria.forClass(getEntityClass());
    ProjectionList proj = Projections.projectionList();
    proj.add(Projections.max("tglPenganngkatan"));
    proj.add(Projections.groupProperty("nik"));
    maxTglPengangkatanQuery.setProjection(proj);
    criteria.add(Subqueries.propertiesIn(new String[] { "tglPenganngkatan", "nik" }, maxTglPengangkatanQuery));
    return (Long) criteria.setProjection(Projections.rowCount()).uniqueResult();
}

From source file:com.inkubator.hrm.dao.impl.LoanNewTypeDaoImpl.java

@Override
public List<LoanNewType> getAllDataPayrollComponent(Long modelComponentId) {
    ProjectionList subProjection = Projections.projectionList();
    subProjection.add(Projections.groupProperty("modelReffernsil"));

    DetachedCriteria subQuery = DetachedCriteria.forClass(PaySalaryComponent.class);
    subQuery.createAlias("modelComponent", "modelComponent", JoinType.INNER_JOIN);
    subQuery.add(Restrictions.eq("modelComponent.id", modelComponentId));
    subQuery.setProjection(subProjection);

    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    criteria.add(Property.forName("id").notIn(subQuery));
    return criteria.list();
}

From source file:com.inkubator.hrm.dao.impl.TempJadwalKaryawanDaoImpl.java

@Override
public List<TempJadwalKaryawan> getByGroupKerjadId(long kerjaId) {
    //        Criteria criteria = getCurrentSession().createCriteria(EmpData.class);

    ProjectionList proList = Projections.projectionList();
    //        proList.add(Property.forName("sequence").max());
    proList.add(Projections.groupProperty("id"));
    DetachedCriteria kelompokData = DetachedCriteria.forClass(EmpData.class).createAlias("wtGroupWorking", "wt")
            .add(Restrictions.eq("wt.id", kerjaId)).setProjection(proList);
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    criteria.createAlias("empData", "em");
    criteria.add(Property.forName("em.id").in(kelompokData));
    return criteria.list();

}

From source file:com.inkubator.hrm.dao.impl.TempJadwalKaryawanDaoImpl.java

@Override
public List<TempJadwalKaryawan> getAllByMaxEndDate(Date date) {
    ProjectionList proList = Projections.projectionList();
    proList.add(Property.forName("tanggalWaktuKerja").max());
    proList.add(Projections.groupProperty("empData"));
    DetachedCriteria data = DetachedCriteria.forClass(getEntityClass()).setProjection(proList);
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    String[] var = { "tanggalWaktuKerja", "empData" };
    criteria.add(Subqueries.propertiesIn(var, data));
    criteria.add(Restrictions.le("tanggalWaktuKerja", date));
    return criteria.list();

}