Example usage for org.hibernate.criterion DetachedCriteria forClass

List of usage examples for org.hibernate.criterion DetachedCriteria forClass

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria forClass.

Prototype

public static DetachedCriteria forClass(Class clazz) 

Source Link

Document

Static builder to create a DetachedCriteria for the given entity, by its Class.

Usage

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.EmpDataDaoImpl.java

@Override
public List<EmpData> getEmployeeBySearchEmployeeLeave(DistributionLeaveSchemeModel model) {
    DetachedCriteria listEmp = DetachedCriteria.forClass(LeaveDistribution.class)
            .setProjection(Property.forName("empData.id")).createAlias("leave", "lv", JoinType.INNER_JOIN)
            .add(Restrictions.eq("lv.id", model.getLeaveSchemeId()));
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    /**//from w  ww. j a va 2s .  c o m
     * automatically get relations of jabatanByJabatanId, department,
     * company don't create alias for that entity, or will get error :
     * duplicate association path
     */
    criteria = this.addJoinRelationsOfCompanyId(criteria, HrmUserInfoUtil.getCompanyId());
    criteria.add(Restrictions.neOrIsNotNull("status", HRMConstant.EMP_TERMINATION));

    //        criteria.createAlias("leaveDistributions", "lv", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("employeeType", "empType", JoinType.INNER_JOIN);
    criteria.createAlias("bioData", "bio", JoinType.INNER_JOIN);
    criteria.createAlias("golonganJabatan", "goljab", JoinType.INNER_JOIN);
    criteria.add(Property.forName("id").notIn(listEmp));
    criteria.add(Restrictions.eq("status", HRMConstant.EMP_TERMINATION));
    //ambil yg working groupnya bukan yg dipilih, dan belum punya working group
    //        if (model.getLeaveSchemeId() != 0 || model.getLeaveSchemeId() != null) {
    //            Disjunction disjunction = Restrictions.disjunction();
    //            disjunction.add(Restrictions.isNull("lv.empData"));
    //            disjunction.add(Restrictions.not(Restrictions.eq("lv.leave.id", model.getLeaveSchemeId())));
    //            criteria.add(disjunction);
    //        }
    //balance
    //        if (model.getStartBalance() != 0.0){
    //            criteria.add(Restrictions.eq("lv.balance", model.getStartBalance()));
    //        }
    //departermen equal or like
    if (model.getDepartmentLikeOrEqual() != 3) {
        if (Objects.equals(model.getDepartmentLikeOrEqual(), HRMConstant.DEPARTMENT_EQUAL)) {
            criteria.add(Restrictions.eq("department.departmentName", model.getDepartmentName()));
        } else {
            criteria.add(Restrictions.like("department.departmentName", model.getDepartmentName(),
                    MatchMode.ANYWHERE));
        }
    }
    //employee type equal or likeS
    if (model.getEmployeeTypeLikeOrEqual() != 3) {
        if (Objects.equals(model.getEmployeeTypeLikeOrEqual(), HRMConstant.EMPLOYEE_TYPE_EQUAL)) {
            criteria.add(Restrictions.eq("empType.name", model.getEmployeeTypeName()));
        } else {
            criteria.add(Restrictions.like("empType.name", model.getEmployeeTypeName(), MatchMode.ANYWHERE));
        }
    }
    //gender
    criteria.add(Restrictions.eq("bio.gender", model.getGender()));
    //goljab
    if (model.getGolonganJabatanId() != 0) {
        criteria.add(Restrictions.eq("goljab.id", model.getGolonganJabatanId()));
    }

    String sortBy;
    if (Objects.equals(model.getSortBy(), HRMConstant.SORT_BY_NIK)) {
        sortBy = "nik";
    } else {
        sortBy = "bio.firstName";
    }

    if (Objects.equals(model.getOrderBy(), HRMConstant.ORDER_BY_ASC)) {
        criteria.addOrder(Order.asc(sortBy));
    } else {
        criteria.addOrder(Order.desc(sortBy));
    }
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}

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

@Override
public List<EmpData> getEmployeeByOtSearchParameter(DistributionOvetTimeModel model) {
    DetachedCriteria listEmp = DetachedCriteria.forClass(OverTimeDistribution.class)
            .setProjection(Property.forName("empData.id"))
            .createAlias("wtOverTime", "wtOverTime", JoinType.INNER_JOIN)
            .add(Restrictions.eq("wtOverTime.id", model.getOverTimeId()));
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    /**/* w w  w. j  a va 2 s  . co m*/
     * automatically get relations of jabatanByJabatanId, department,
     * company don't create alias for that entity, or will get error :
     * duplicate association path
     */
    criteria = this.addJoinRelationsOfCompanyId(criteria, HrmUserInfoUtil.getCompanyId());
    criteria.add(Restrictions.neOrIsNotNull("status", HRMConstant.EMP_TERMINATION));

    criteria.createAlias("overTimeDistributions", "ot", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("ot.wtOverTime", "wt", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("employeeType", "empType", JoinType.INNER_JOIN);
    criteria.createAlias("bioData", "bio", JoinType.INNER_JOIN);
    criteria.add(Property.forName("id").notIn(listEmp));
    //        criteria.createAlias("golonganJabatan", "goljab", JoinType.INNER_JOIN);
    /*if (model.getOverTimeId() != 0 || model.getOverTimeId() != null) {
            
    Criterion andCondition = Restrictions.conjunction()
            .add(Restrictions.isNotNull("ot.empData"))
            .add(Restrictions.not(Restrictions.eq("wt.id", model.getOverTimeId())));
            
    //                   criteria.add(Restrictions.isNull("ot.empData"));
    Criterion completeCondition
            = Restrictions.disjunction().add(andCondition)
            .add(Restrictions.isNull("ot.empData"));
            
    //            Disjunction conjunction = Restrictions.conjunction();
    //            disjunction.add(Restrictions.isNotNull("ot.empData"));
    //            disjunction.add(Restrictions.not(Restrictions.eq("ot.wtOverTime.id", model.getOverTimeId())));
    criteria.add(completeCondition);
    }*/
    //balance
    //        if (model.getStartBalance() != 0.0){
    //            criteria.add(Restrictions.eq("lv.balance", model.getStartBalance()));
    //        }
    //departermen equal or like
    if (model.getDepartmentLikeOrEqual() != 3) {
        if (Objects.equals(model.getDepartmentLikeOrEqual(), HRMConstant.DEPARTMENT_EQUAL)) {
            criteria.add(Restrictions.eq("department.departmentName", model.getDepartmentName()));
        } else {
            criteria.add(Restrictions.like("department.departmentName", model.getDepartmentName(),
                    MatchMode.ANYWHERE));
        }
    }
    //employee type equal or likeS
    if (model.getEmployeeTypeLikeOrEqual() != 3) {
        if (Objects.equals(model.getEmployeeTypeLikeOrEqual(), HRMConstant.EMPLOYEE_TYPE_EQUAL)) {
            criteria.add(Restrictions.eq("empType.name", model.getEmployeeTypeName()));
        } else {
            criteria.add(Restrictions.like("empType.name", model.getEmployeeTypeName(), MatchMode.ANYWHERE));
        }
    }
    //gender
    criteria.add(Restrictions.eq("bio.gender", model.getGender()));
    //goljab
    if (model.getGolonganJabatanId() != 0) {
        criteria.add(Restrictions.eq("goljab.id", model.getGolonganJabatanId()));
    }

    String sortBy;
    if (Objects.equals(model.getSortBy(), HRMConstant.SORT_BY_NIK)) {
        sortBy = "nik";
    } else {
        sortBy = "bio.firstName";
    }

    if (Objects.equals(model.getOrderBy(), HRMConstant.ORDER_BY_ASC)) {
        criteria.addOrder(Order.asc(sortBy));
    } else {
        criteria.addOrder(Order.desc(sortBy));
    }
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}

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

/**
 * automatically get relations of jabatanByJabatanId, department, company
 * don't create alias for that entity, or will get error : duplicate
 * association path//from ww w. j  a v a  2 s .co m
 */
/*
criteria = this.addJoinRelationsOfCompanyId(criteria, HrmUserInfoUtil.getCompanyId());
criteria.add(Restrictions.neOrIsNotNull("status", HRMConstant.EMP_TERMINATION));
        
//    criteria.createAlias("leaveDistributions", "lv", JoinType.LEFT_OUTER_JOIN);
criteria.createAlias("employeeType", "empType", JoinType.INNER_JOIN);
criteria.createAlias("bioData", "bio", JoinType.INNER_JOIN);
criteria.createAlias("golonganJabatan", "goljab", JoinType.INNER_JOIN);
criteria.add(Property.forName("id").notIn(listEmp));
//ambil yg working groupnya bukan yg dipilih, dan belum punya working group
//    if (model.getLeaveSchemeId() != 0 || model.getLeaveSchemeId() != null) {
//        Disjunction disjunction = Restrictions.disjunction();
//        disjunction.add(Restrictions.isNull("lv.empData"));
//        disjunction.add(Restrictions.not(Restrictions.eq("lv.leave.id", model.getLeaveSchemeId())));
//        criteria.add(disjunction);
//    }
*/ @Override
public List<EmpData> getEmployeeBySearchEmployeePermit(PermitDistributionModel model) {
    DetachedCriteria listEmp = DetachedCriteria.forClass(PermitDistribution.class)
            .setProjection(Property.forName("empData.id"))
            .createAlias("permitClassification", "pc", JoinType.INNER_JOIN)
            .add(Restrictions.eq("pc.id", model.getPermitId()));
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    /**
     * automatically get relations of jabatanByJabatanId, department,
     * company don't create alias for that entity, or will get error :
     * duplicate association path
     */
    criteria = this.addJoinRelationsOfCompanyId(criteria, HrmUserInfoUtil.getCompanyId());
    criteria.add(Restrictions.neOrIsNotNull("status", HRMConstant.EMP_TERMINATION));

    criteria.createAlias("permitDistributions", "lv", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("employeeType", "empType", JoinType.INNER_JOIN);
    criteria.createAlias("bioData", "bio", JoinType.INNER_JOIN);
    criteria.createAlias("golonganJabatan", "goljab", JoinType.INNER_JOIN);
    criteria.add(Property.forName("id").notIn(listEmp));
    //ambil yg working groupnya bukan yg dipilih, dan belum punya working group
    /*if (model.getPermitId() != 0 || model.getPermitId() != null) {
     Disjunction disjunction = Restrictions.disjunction();
     disjunction.add(Restrictions.isNull("permitDistributions"));
     disjunction.add(Restrictions.not(Restrictions.eq("lv.permitClassification.id", model.getPermitId())));
     //disjunction.add(Restrictions.sqlRestriction(sql, values, types));
     criteria.add(disjunction);
     }*/
    //balance
    //        if (model.getStartBalance() != 0.0){
    //            criteria.add(Restrictions.eq("lv.balance", model.getStartBalance()));
    //        }
    //departermen equal or like
    if (model.getDepartmentLikeOrEqual() != 3) {
        if (Objects.equals(model.getDepartmentLikeOrEqual(), HRMConstant.DEPARTMENT_EQUAL)) {
            criteria.add(Restrictions.eq("department.departmentName", model.getDepartmentName()));
        } else {
            criteria.add(Restrictions.like("department.departmentName", model.getDepartmentName(),
                    MatchMode.ANYWHERE));
        }
    }
    //employee type equal or likeS
    if (model.getEmployeeTypeLikeOrEqual() != 3) {
        if (Objects.equals(model.getEmployeeTypeLikeOrEqual(), HRMConstant.EMPLOYEE_TYPE_EQUAL)) {
            criteria.add(Restrictions.eq("empType.name", model.getEmployeeTypeName()));
        } else {
            criteria.add(Restrictions.like("empType.name", model.getEmployeeTypeName(), MatchMode.ANYWHERE));
        }
    }
    //gender
    criteria.add(Restrictions.eq("bio.gender", model.getGender()));
    //goljab
    if (model.getGolonganJabatanId() != 0) {
        criteria.add(Restrictions.eq("goljab.id", model.getGolonganJabatanId()));
    }

    String sortBy;
    if (Objects.equals(model.getSortBy(), HRMConstant.SORT_BY_NIK)) {
        sortBy = "nik";
    } else {
        sortBy = "bio.firstName";
    }

    if (Objects.equals(model.getOrderBy(), HRMConstant.ORDER_BY_ASC)) {
        criteria.addOrder(Order.asc(sortBy));
    } else {
        criteria.addOrder(Order.desc(sortBy));
    }
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}

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

@Override
public List<EmpData> getListEmpDataWhichNotExistOnFingerEmpMatch() {
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());

    DetachedCriteria fingerMatchEmpCriteria = DetachedCriteria.forClass(FingerMatchEmp.class)
            .createAlias("empData", "empData", JoinType.INNER_JOIN)
            .setProjection(Projections.property("empData.id"));

    String[] propertyEmpDataId = { "id" };
    criteria.add(Subqueries.propertiesNotIn(propertyEmpDataId, fingerMatchEmpCriteria))
            .setFetchMode("bioData", FetchMode.JOIN).setFetchMode("jabatanByJabatanId", FetchMode.JOIN);
    return criteria.list();
}

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

@Override
public LoanNewApplicationInstallment getLastPaidTerminInstallment(Integer LoanNewApplicationid) {

    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    criteria.createAlias("loanNewApplication", "loanNewApplication", JoinType.INNER_JOIN);
    criteria.add(Restrictions.eq("loanNewApplication.id", LoanNewApplicationid));

    DetachedCriteria criteriaWtPeriod = DetachedCriteria.forClass(WtPeriode.class)
            .add(Restrictions.eq("payrollType", HRMConstant.PERIODE_PAYROLL_ACTIVE))
            .setProjection(Property.forName("fromPeriode"));

    criteria.add(Subqueries.propertyLt("installmentDate", criteriaWtPeriod));
    criteria.addOrder(Order.desc("numOfInstallment"));
    criteria.setMaxResults(1);/*from  ww  w.ja v  a 2s.  c o  m*/

    LoanNewApplicationInstallment currentNextInstallment = (LoanNewApplicationInstallment) criteria
            .uniqueResult();
    return currentNextInstallment;
}

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.isdemu.dao.impl.TBC_ClaseActivoDaoImpl.java

@Override
public List getTop() {
    // TODO Auto-generated method stub
    DetachedCriteria dc = DetachedCriteria.forClass(TbcClaseActivo.class);

    return dc.getExecutableCriteria(sessionFactory.getCurrentSession()).list();
}