Example usage for org.hibernate.criterion Restrictions in

List of usage examples for org.hibernate.criterion Restrictions in

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions in.

Prototype

public static Criterion in(String propertyName, Collection values) 

Source Link

Document

Apply an "in" constraint to the named property.

Usage

From source file:com.impetus.client.rdbms.HibernateClient.java

License:Apache License

@Override
public <E> List<E> findAll(Class<E> entityClazz, String[] columnsToSelect, Object... arg1) {
    // TODO: Vivek correct it. unfortunately i need to open a new session
    // for each finder to avoid lazy loading.
    Session s = getSession();/*  w w  w .  j  a  va 2  s.c om*/

    EntityMetadata entityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata,
            getPersistenceUnit(), entityClazz);

    Object[] pKeys = getDataType(entityMetadata, arg1);
    String id = ((AbstractAttribute) entityMetadata.getIdAttribute()).getJPAColumnName();

    Criteria c = s.createCriteria(entityClazz);

    c.add(Restrictions.in(id, pKeys));

    return c.list();
}

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

@Override
public List<EmpData> getAllDataByNameOrNik(String param, Long companyId) {
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    /**/*from   w ww .ja  v  a  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, companyId);
    //criteria.add(Restrictions.neOrIsNotNull("status", HRMConstant.EMP_TERMINATION));
    criteria.add(Restrictions.isNotNull("status"));
    criteria.add(Restrictions
            .not(Restrictions.in("status", Arrays.asList(HRMConstant.EMP_TERMINATION, HRMConstant.EMP_DISCHAGED,
                    HRMConstant.EMP_LAID_OFF, HRMConstant.EMP_STOP_CONTRACT, HRMConstant.EMP_PENSION))));

    criteria.createAlias("bioData", "bioData", JoinType.INNER_JOIN);
    Disjunction disjunction = Restrictions.disjunction();
    disjunction.add(Restrictions.like("bioData.firstName", param, MatchMode.ANYWHERE));
    disjunction.add(Restrictions.like("bioData.lastName", param, MatchMode.ANYWHERE));
    disjunction.add(Restrictions.like("nik", param, MatchMode.ANYWHERE));
    criteria.add(disjunction);
    criteria.setMaxResults(20);
    return criteria.list();
}

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

@Override
public List<EmpData> getAllDataByNameOrNik(String param) {
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    //criteria.add(Restrictions.neOrIsNotNull("status", HRMConstant.EMP_TERMINATION));
    criteria.add(Restrictions.isNotNull("status"));
    criteria.add(Restrictions//  www.j  a va 2s.c  o  m
            .not(Restrictions.in("status", Arrays.asList(HRMConstant.EMP_TERMINATION, HRMConstant.EMP_DISCHAGED,
                    HRMConstant.EMP_LAID_OFF, HRMConstant.EMP_STOP_CONTRACT, HRMConstant.EMP_PENSION))));

    criteria.createAlias("bioData", "bioData", JoinType.INNER_JOIN);
    Disjunction disjunction = Restrictions.disjunction();
    disjunction.add(Restrictions.like("bioData.firstName", param, MatchMode.ANYWHERE));
    disjunction.add(Restrictions.like("bioData.lastName", param, MatchMode.ANYWHERE));
    disjunction.add(Restrictions.like("nik", param, MatchMode.ANYWHERE));
    criteria.add(disjunction);
    criteria.setMaxResults(20);
    return criteria.list();
}

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

@Override
public List<EmpData> getEmpDataByListId(List<Long> data) {
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());
    criteria.add(Restrictions.in("id", data));
    criteria.setFetchMode("jabatanByJabatanGajiId", FetchMode.JOIN);
    criteria.setFetchMode("bioData", FetchMode.JOIN);
    criteria.setFetchMode("jabatanByJabatanGajiId.department", FetchMode.JOIN);
    criteria.setFetchMode("jabatanByJabatanGajiId.unitKerja", FetchMode.JOIN);
    return criteria.list();
}

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

private Criteria doSearchReportEmpDepartmentJabatanByParam(ReportEmpDepartmentJabatanParameter param,
        Criteria criteria) {/*from   ww w . j  a  v  a 2  s  .  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());

    if (param.getDepartmentId() != null && param.getDepartmentId() != 0) {
        criteria.add(Restrictions.eq("jabatanByJabatanId.department.id", param.getDepartmentId()));
    }

    if (param.getGolonganJabatanId() != null) {
        criteria.add(Restrictions.in("golonganJabatan.id", param.getGolonganJabatanId()));

    }

    return criteria;
}

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

public void doCreateAliasByDepartmentAndEducation(List<Long> departementId, List<Long> educationId,
        Criteria criteria) {/*  w w w . ja 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.not(Restrictions.eq("status", HRMConstant.EMP_TERMINATION)));

    criteria.createAlias("bioData", "bioData", JoinType.INNER_JOIN);
    criteria.createAlias("bioData.educationHistories", "educationHistories", JoinType.INNER_JOIN);
    criteria.createAlias("educationHistories.educationLevel", "educationLevel", JoinType.INNER_JOIN);
    if (departementId.isEmpty() != Boolean.TRUE) {
        criteria.add(Restrictions.in("department.id", departementId));
    }
    if (educationId.isEmpty() != Boolean.TRUE) {
        criteria.add(Restrictions.in("educationLevel.id", educationId));
    }
}

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

public void doCreateAliasByDepartmentAndEmployeeType(List<Long> listDepartmentId, List<Long> listEmployeeTypeId,
        Criteria criteria) {//from   w  w w .ja va 2  s  .c  om
    /**
     * 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.createAlias("bioData", "bioData", JoinType.INNER_JOIN);
    criteria.createAlias("golonganJabatan", "golonganJabatan", JoinType.INNER_JOIN);
    criteria.createAlias("employeeType", "employeeType", JoinType.INNER_JOIN);
    if (!listDepartmentId.isEmpty()) {
        criteria.add(Restrictions.in("department.id", listDepartmentId));
    }
    if (!listEmployeeTypeId.isEmpty()) {
        criteria.add(Restrictions.in("employeeType.id", listEmployeeTypeId));
    }
}

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

@Override
public List<EmpData> getAllDataByDepartmentAndReligionAndGolJabAndEmpType(List<Long> departmentIds,
        List<Long> religionIds, List<Long> golJabIds, List<Long> empTypeIds) {
    Criteria criteria = getCurrentSession().createCriteria(getEntityClass());

    criteria.add(Restrictions.not(Restrictions.eq("status", HRMConstant.EMP_TERMINATION)));

    criteria.createAlias("jabatanByJabatanId", "jabatanByJabatanId", JoinType.INNER_JOIN);
    criteria.createAlias("jabatanByJabatanId.department", "department", JoinType.INNER_JOIN);
    criteria.createAlias("bioData", "bioData", JoinType.INNER_JOIN);
    criteria.createAlias("bioData.religion", "religion", JoinType.INNER_JOIN);

    if (!departmentIds.isEmpty()) {
        criteria.add(Restrictions.in("department.id", departmentIds));
    }/*from  w  ww  .  ja  v  a 2s . c om*/
    if (!religionIds.isEmpty()) {
        criteria.add(Restrictions.in("religion.id", religionIds));
    }
    if (!golJabIds.isEmpty()) {
        criteria.add(Restrictions.in("golonganJabatan.id", golJabIds));
    }
    if (!empTypeIds.isEmpty()) {
        criteria.add(Restrictions.in("employeeType.id", empTypeIds));
    }

    return criteria.list();
}

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

@Override
public List<EmpData> getAllDataByParamWithDetail(List<Department> deptId, List<GolonganJabatan> golJabId,
        String[] empTypeName, List<Integer> listAge, List<Integer> listJoinDate, List<String> listNik,
        int firstResult, int maxResults, Order order) {
    List<Long> listDepartment = new ArrayList<Long>();
    List<Long> listGolJab = new ArrayList<Long>();
    for (Department department : deptId) {
        listDepartment.add(department.getId());
    }//from   w  ww  .  j  av  a2  s. co m
    for (GolonganJabatan golonganJabatan : golJabId) {
        listGolJab.add(golonganJabatan.getId());
    }
    final org.hibernate.type.Type[] typeJoinDate = new org.hibernate.type.Type[listJoinDate.size()];
    Arrays.fill(typeJoinDate, org.hibernate.type.StandardBasicTypes.INTEGER);
    final org.hibernate.type.Type[] typeAge = new org.hibernate.type.Type[listAge.size()];
    Arrays.fill(typeAge, org.hibernate.type.StandardBasicTypes.INTEGER);

    final StringBuilder joinDateList = new StringBuilder();
    final StringBuilder ageList = new StringBuilder();

    for (int i = 0; i < listJoinDate.size(); i++) {
        if (i > 0) {
            joinDateList.append(",");
        }
        joinDateList.append("?");
    }
    for (int i = 0; i < listAge.size(); i++) {
        if (i > 0) {
            ageList.append(",");
        }
        ageList.append("?");
    }
    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.not(Restrictions.eq("status", HRMConstant.EMP_TERMINATION)));

    //        criteria.createAlias("bioData", "bioData", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("golonganJabatan", "golonganJabatan", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("employeeType", "employeeType", JoinType.LEFT_OUTER_JOIN);
    //        criteria.createCriteria("bioData", "bio", JoinType.LEFT_OUTER_JOIN);
    if (!deptId.isEmpty()) {
        criteria.add(Restrictions.in("department.id", listDepartment));
    }

    if (!golJabId.isEmpty()) {
        criteria.add(Restrictions.in("golonganJabatan.id", listGolJab));
    }

    if (empTypeName.length != 0) {
        criteria.add(Restrictions.in("employeeType.name", empTypeName));
    }

    if (listJoinDate.get(0) != 0) {
        criteria.add(Restrictions
                .sqlRestriction("DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS({alias}.join_date)), '%Y')+0 in ("
                        + joinDateList.toString() + ")", listJoinDate.toArray(), typeJoinDate));

    }
    if (listAge.get(0) != 0) {
        //            criteria.createAlias("bioData", "bioData", JoinType.LEFT_OUTER_JOIN);
        Criteria criteriaBiodata = criteria.createCriteria("bioData", JoinType.LEFT_OUTER_JOIN);
        //            criteria.createCriteria("bioData", JoinType.LEFT_OUTER_JOIN);
        criteriaBiodata.add(Restrictions.sqlRestriction(
                "DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS({alias}.date_of_birth)), '%Y')+0 in ("
                        + ageList.toString() + ")",
                listAge.toArray(), typeAge));
    }

    if (!listNik.isEmpty()) {
        criteria.add(Restrictions.in("nik", listNik));
    }
    criteria.addOrder(order);
    criteria.setFirstResult(firstResult);
    criteria.setMaxResults(maxResults);
    return criteria.list();
}

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

@Override
public Long getTotalByParamWithDetail(List<Department> deptId, List<GolonganJabatan> golJabId,
        String[] empTypeName, List<Integer> listAge, List<Integer> listJoinDate, List<String> listNik) {
    List<Long> listDepartment = new ArrayList<Long>();
    List<Long> listGolJab = new ArrayList<Long>();
    for (Department department : deptId) {
        listDepartment.add(department.getId());
    }//from  w ww .j  ava  2  s.  c  o  m
    for (GolonganJabatan golonganJabatan : golJabId) {
        listGolJab.add(golonganJabatan.getId());
    }
    final org.hibernate.type.Type[] typeJoinDate = new org.hibernate.type.Type[listJoinDate.size()];
    Arrays.fill(typeJoinDate, org.hibernate.type.StandardBasicTypes.INTEGER);
    final org.hibernate.type.Type[] typeAge = new org.hibernate.type.Type[listAge.size()];
    Arrays.fill(typeAge, org.hibernate.type.StandardBasicTypes.INTEGER);

    final StringBuilder joinDateList = new StringBuilder();
    final StringBuilder ageList = new StringBuilder();

    for (int i = 0; i < listJoinDate.size(); i++) {
        if (i > 0) {
            joinDateList.append(",");
        }
        joinDateList.append("?");
    }
    for (int i = 0; i < listAge.size(); i++) {
        if (i > 0) {
            ageList.append(",");
        }
        ageList.append("?");
    }
    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.not(Restrictions.eq("status", HRMConstant.EMP_TERMINATION)));

    //        criteria.createAlias("bioData", "bioData", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("golonganJabatan", "golonganJabatan", JoinType.LEFT_OUTER_JOIN);
    criteria.createAlias("employeeType", "employeeType", JoinType.LEFT_OUTER_JOIN);
    //        criteria.createCriteria("bioData", "bio", JoinType.LEFT_OUTER_JOIN);
    if (!deptId.isEmpty()) {
        criteria.add(Restrictions.in("department.id", listDepartment));
    }

    if (!golJabId.isEmpty()) {
        criteria.add(Restrictions.in("golonganJabatan.id", listGolJab));
    }

    if (empTypeName.length != 0) {
        criteria.add(Restrictions.in("employeeType.name", empTypeName));
    }

    if (listJoinDate.get(0) != 0) {
        criteria.add(Restrictions
                .sqlRestriction("DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS({alias}.join_date)), '%Y')+0 in ("
                        + joinDateList.toString() + ")", listJoinDate.toArray(), typeJoinDate));

    }
    if (listAge.get(0) != 0) {
        Criteria criteriaBiodata = criteria.createCriteria("bioData", JoinType.LEFT_OUTER_JOIN);
        //            criteria.createCriteria("bioData", JoinType.LEFT_OUTER_JOIN);
        criteriaBiodata.add(Restrictions.sqlRestriction(
                "DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS({alias}.date_of_birth)), '%Y')+0 in ("
                        + ageList.toString() + ")",
                listAge.toArray(), typeAge));
    }

    if (!listNik.isEmpty()) {
        criteria.add(Restrictions.in("nik", listNik));
    }

    return (Long) criteria.setProjection(Projections.rowCount()).uniqueResult();
}