Example usage for org.hibernate.criterion ProjectionList add

List of usage examples for org.hibernate.criterion ProjectionList add

Introduction

In this page you can find the example usage for org.hibernate.criterion ProjectionList add.

Prototype

public ProjectionList add(Projection projection) 

Source Link

Document

Add a projection to this list of projections

Usage

From source file:com.ihsolution.hqipo.dao.utils.QueryHelper.java

License:Open Source License

protected String createProjection(String field) {
    String[] fStrs = field.split("\\.");
    String tmpField = "";
    int len = fStrs.length;
    ProjectionList prList = Projections.projectionList();

    if (len > 1) {
        for (int i = 0; len - i != 1; i++) {
            if (i == 0) {
                if (!projections.contains(fStrs[i])) {
                    prList.add(Projections.property(fStrs[i]));
                    projections.add(fStrs[i]);
                }/*from ww  w.ja va  2  s .  c om*/
            } else {
                if (!projections.contains(fStrs[i])) {
                    String str = fStrs[i - 1] + "." + fStrs[i];
                    prList.add(Projections.property(str), fStrs[i]);
                    projections.add(fStrs[i]);
                }
            }
        }
        detCriteria.setProjection(prList);
        tmpField = fStrs[len - 1];
    } else
        tmpField = field;

    return tmpField;
}

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);//from   w w  w . j  a  v a  2 s .c  o  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();

}

From source file:com.jaspersoft.jasperserver.api.search.SearchCriteria.java

License:Open Source License

private Projection addProjectionToList(ProjectionList projectionList, Projection newProjection) {
    if (newProjection instanceof ProjectionList) {
        ProjectionList newProjectionList = ((ProjectionList) newProjection);

        for (int i = 0; i < newProjectionList.getLength(); i++) {
            projectionList.add(newProjectionList.getProjection(i));
        }/*from  w  w  w. j  av a 2 s.com*/
    } else {
        projectionList.add(newProjection);
    }

    return projectionList;
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

public List<ProcessDefinition> findProcessDefinitions(String name, boolean latest, int start, int end,
        OrderByComparator orderByComparator) {

    try {/*from w ww  .j a  v a 2 s  .com*/
        Criteria criteria = _session.createCriteria(ProcessDefinition.class);

        if (latest) {
            ProjectionList projectionList = Projections.projectionList();

            projectionList.add(Projections.groupProperty("name"));
            projectionList.add(Projections.max("version"));

            criteria.setProjection(projectionList);

            addOrder(criteria, orderByComparator, "version");
        }

        if (name != null) {
            criteria.add(Restrictions.eq("name", name));

            addOrder(criteria, orderByComparator, "name");
        }

        if (latest == false && name == null) {
            addOrder(criteria, orderByComparator);
        }

        addPagination(criteria, start, end);

        if (latest) {
            List<Object[]> list = criteria.list();

            List<String> names = new ArrayList<String>(list.size());

            for (Object[] array : list) {
                names.add((String) array[0]);
            }

            return findProcessDefinitions(names);
        } else {
            return criteria.list();
        }
    } catch (Exception e) {
        throw new JbpmException(e);
    }
}

From source file:com.mg.framework.api.orm.Projections.java

License:Open Source License

/**
 * Create a new projection list/*from   www .  j ava  2s  . c  om*/
 */
public static Projection projectionList(Projection... projections) {
    ProjectionList list = org.hibernate.criterion.Projections.projectionList();
    for (Projection projection : projections)
        list.add(((GenericProjectionImpl) projection).getHibernateProjection());
    return new GenericProjectionImpl(list);
}

From source file:com.opiframe.DAO.TeacherDAO.java

public static List<Object[]> getTeacherCourses(String name) {
    List<Object[]> lst = null;
    try {/*from ww  w  . java  2s.c o  m*/
        ProjectionList projList = Projections.projectionList();
        Session session = HibernateUtil.getSessionFactory().openSession();
        Criteria criteria = session.createCriteria(Teachers.class, "teach");
        criteria.createCriteria("teach.courseses", "courseses");
        projList.add(Projections.property("courseses.courseName"));
        projList.add(Projections.property("courseses.courseId"));
        criteria.setProjection(projList);
        criteria.add(Restrictions.eq("teach.teacherName", name));
        lst = criteria.list();
        session.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return lst;
}