Example usage for org.hibernate.criterion Restrictions and

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

Introduction

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

Prototype

public static LogicalExpression and(Criterion lhs, Criterion rhs) 

Source Link

Document

Return the conjuction of two expressions

Usage

From source file:es.jpons.persistence.query.CriteriaAllenRelations.java

License:Open Source License

/**
 * Meets relation//from   ww w  .ja va  2s .co m
 *
 * @param initializedCriteria an initialized criteria
 * @param pvp a possibilistic valid time period.
 * @return A criteria
 */
public static Criteria meets(Criteria initializedCriteria, PossibilisticVTP pvp) {
    Long left = pvp.getStartMP() - pvp.getStartLeft();
    Long right = pvp.getStartMP() + pvp.getStartRight();
    initializedCriteria = initializedCriteria.add(Restrictions.and(
            Restrictions.sqlRestriction("( {alias}.endMP + {alias}.endLeft ) >= ?", left, LongType.INSTANCE),
            Restrictions.sqlRestriction("( {alias}.endMP + {alias}.endLeft ) <= ?", right, LongType.INSTANCE)));

    return initializedCriteria;
}

From source file:es.jpons.persistence.query.CriteriaAllenRelations.java

License:Open Source License

public static Criteria meet_by(Criteria initializedCriteria, PossibilisticVTP pvp) {
    Long left = pvp.getEndMP() - pvp.getEndLeft();
    Long right = pvp.getEndMP() + pvp.getEndRight();
    initializedCriteria = initializedCriteria.add(Restrictions.and(
            Restrictions.sqlRestriction("( {alias}.startMP + {alias}.startLeft ) >= ?", left,
                    LongType.INSTANCE),// w  ww .j a v  a 2s  .  c  om
            Restrictions.sqlRestriction("( {alias}.startMP + {alias}.startLeft ) <= ?", right,
                    LongType.INSTANCE)));
    return initializedCriteria;
}

From source file:es.jpons.persistence.query.CriteriaAllenRelations.java

License:Open Source License

/**
 * Implements the during criteria//from w  w w  .  j av  a2 s. co  m
 *
 * @param initializedCriteria
 * @param pvp
 * @return
 */
public static Criteria during(Criteria initializedCriteria, PossibilisticVTP pvp) {
    Long jstart = pvp.getStartMP();
    Long jright = pvp.getEndMP() + pvp.getEndRight();
    Long jleft = pvp.getStartMP() - pvp.getStartLeft();
    Long jend = pvp.getEndMP();

    initializedCriteria = initializedCriteria.add(Restrictions.or(
            Restrictions.and(Restrictions.sqlRestriction("({alias}.startMP ) > ?", jstart, LongType.INSTANCE),
                    Restrictions.sqlRestriction("{alias}.endMP <= ?", jright, LongType.INSTANCE)),
            Restrictions.and(Restrictions.sqlRestriction("({alias}.startMP ) >= ?", jleft, LongType.INSTANCE),
                    Restrictions.sqlRestriction("{alias}.endMP < ?", jend, LongType.INSTANCE))));

    return initializedCriteria;

}

From source file:es.jpons.persistence.query.CriteriaAllenRelations.java

License:Open Source License

/**
 * Implements the contains/*from   www.  j  a  v  a2  s  .c o m*/
 *
 * @param initializedCriteria
 * @param pvp
 * @return
 */
public static Criteria contains(Criteria initializedCriteria, PossibilisticVTP pvp) {
    Long jstart = pvp.getStartMP();
    Long jright = pvp.getStartMP() + pvp.getStartRight();
    Long jleft = pvp.getEndMP() - pvp.getEndLeft();
    Long jend = pvp.getEndMP();

    initializedCriteria = initializedCriteria.add(Restrictions.or(
            Restrictions.and(Restrictions.sqlRestriction("({alias}.startMP ) < ?", jstart, LongType.INSTANCE),
                    Restrictions.sqlRestriction("{alias}.endMP >= ?", jleft, LongType.INSTANCE)),
            Restrictions.and(Restrictions.sqlRestriction("({alias}.startMP ) <= ?", jright, LongType.INSTANCE),
                    Restrictions.sqlRestriction("{alias}.endMP > ?", jend, LongType.INSTANCE))));

    return initializedCriteria;

}

From source file:es.jpons.persistence.query.CriteriaAllenRelations.java

License:Open Source License

public static Criteria equals(Criteria initializedCriteria, PossibilisticVTP pvp) {

    initializedCriteria = initializedCriteria.add(Restrictions.and(
            Restrictions.or(/* w  w w  .j  a va2 s .  c  om*/
                    Restrictions.sqlRestriction("({alias}.startMP + {alias}.startRight ) <= ?",
                            pvp.getStartMP() - pvp.getStartLeft(), LongType.INSTANCE),
                    Restrictions.sqlRestriction("({alias}.startMP - {alias}.startLeft ) >= ?",
                            pvp.getStartMP() + pvp.getStartRight(), LongType.INSTANCE)),
            Restrictions.or(
                    Restrictions.sqlRestriction("({alias}.endMP + {alias}.endRight ) <= ?",
                            pvp.getEndMP() - pvp.getEndLeft(), LongType.INSTANCE),
                    Restrictions.sqlRestriction("({alias}.endMP - {alias}.endLeft ) >= ?",
                            pvp.getEndMP() + pvp.getEndRight(), LongType.INSTANCE))));

    return initializedCriteria;
}

From source file:es.jpons.persistence.TemporalPersistenceManager.java

License:Open Source License

/**
 * Criteria for the insert operation// w  ww .ja va 2 s. c om
 *
 * @param criteria An initialized criteria
 * @param key the temporal primary key of the object
 * @return The criteria to modify a tuple.
 */
protected Criteria criteriaModify(Criteria criteria, TemporalPK key) {
    return criteria.add(Restrictions.and(Restrictions.eq("tid.id", key.getId()),
            Restrictions.eq("pvp.side", OpenInterval.UC)));
}

From source file:es.sm2.openppm.core.dao.DataTableDAO.java

License:Open Source License

private void applyFilters(Criteria crit, List<DatoColumna> filtrosExtras) throws ParseException {

    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");

    for (DatoColumna filtroColumna : filtrosExtras) {

        if (filtroColumna.getTipo() == Date.class) {

            // Filtramos si es una fecha
            Date tempDate = df.parse(filtroColumna.getValor());
            crit.add(Restrictions.eq(filtroColumna.getNombre(), tempDate));
        } else if (filtroColumna.getTipo() == Integer.class) {

            // Filtramos si es un numero
            Integer integer = Integer.parseInt(filtroColumna.getValor());
            crit.add(Restrictions.eq(filtroColumna.getNombre(), integer));
        } else if (filtroColumna.getTipo() == Boolean.class) {

            // Filtramos si es un booleano
            Boolean bool = Boolean.parseBoolean(filtroColumna.getValor());
            crit.add(Restrictions.eq(filtroColumna.getNombre(), bool));
        } else if (filtroColumna.getTipo() == List.class) {

            // Since Until
            if (filtroColumna.getSubTipo() != null && filtroColumna.getSubTipo() == Date.class) {

                Date sinceDate = (Date) filtroColumna.getObjectList()[0];
                Date untilDate = (Date) filtroColumna.getObjectList()[1];

                String sinceName = (String) filtroColumna.getNombreList()[0];
                String untilName = (String) filtroColumna.getNombreList()[1];

                crit.add(Restrictions.disjunction().add(Restrictions.between(sinceName, sinceDate, untilDate))
                        .add(Restrictions.between(untilName, sinceDate, untilDate)).add(Restrictions.and(
                                Restrictions.le(sinceName, sinceDate), Restrictions.ge(untilName, untilDate))));
            } else {
                // Tiene que estar en la lista
                crit.add(Restrictions.in(filtroColumna.getNombre(), filtroColumna.getValorList()));
            }//from ww w  .j  av  a2 s. com
        } else if (filtroColumna.getTipo() == String.class) {

            if (filtroColumna.getSubTipo() == List.class) {

                if (!ValidateUtil.isNull(filtroColumna.getValor())) {
                    String[] value = filtroColumna.getValor().split(",");
                    List<Integer> ids = new ArrayList<Integer>();

                    for (String id : value) {
                        ids.add(Integer.parseInt(id));
                    }
                    if (filtroColumna.getCriteria() != null) {
                        Criteria crit2 = crit.createCriteria(filtroColumna.getCriteria());
                        crit2.add(Restrictions.in(filtroColumna.getNombre(), ids));
                    } else {
                        crit.add(Restrictions.in(filtroColumna.getNombre(), ids));
                    }
                }
            } else {
                // Comparando texto
                crit.add(Restrictions.like(filtroColumna.getNombre(), "%" + filtroColumna.getValor() + "%"));
            }
        } else {

            // Filtrando Objectos
            crit.add(Restrictions.eq(filtroColumna.getNombre(), filtroColumna.getObject()));
        }
    }
}

From source file:es.sm2.openppm.core.dao.EmployeeDAO.java

License:Open Source License

/**
 * Find Approvals Time Sheets by Functional Manager
 * /*from w w  w  .ja  va 2  s  . c  o  m*/
 * @param user
 * @param initDate
 * @param endDate
 * @param status
 * @param statusResource
 * @param includeClosed
 * @param onlyOperations 
 * @param employees - not equals
 * @return
 */
@SuppressWarnings("unchecked")
public List<Employee> findApprovals(Employee user, Date initDate, Date endDate, String status,
        String statusResource, boolean includeClosed, List<Employee> employees, boolean onlyOperations) {

    Resourceprofiles profile = user.getResourceprofiles();

    Criteria crit = getSession().createCriteria(getPersistentClass(), "e")
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).setFetchMode(Employee.CONTACT, FetchMode.JOIN);

    if (ValidateUtil.isNotNull(employees)) {

        List<Integer> ids = new ArrayList<Integer>();
        for (Employee item : employees) {
            ids.add(item.getIdEmployee());
        }

        crit.add(Restrictions.not(Restrictions.in("e." + Employee.IDEMPLOYEE, ids)));
    }

    crit.createCriteria(Employee.TIMESHEETS, "ts").add(Restrictions.eq(Timesheet.INITDATE, initDate))
            .add(Restrictions.eq(Timesheet.ENDDATE, endDate)).add(Restrictions.eq(Timesheet.STATUS, status))
            .createAlias(Timesheet.PROJECTACTIVITY, "pa", Criteria.LEFT_JOIN)
            .createAlias("pa." + Projectactivity.PROJECT, "p", Criteria.LEFT_JOIN);

    if (ValidateUtil.isNotNull(statusResource)) {
        crit.createCriteria("pa." + Projectactivity.TEAMMEMBERS)
                .add(Restrictions.eq(Teammember.STATUS, statusResource)).createCriteria(Teammember.EMPLOYEE)
                .add(Restrictions.eqProperty(Employee.IDEMPLOYEE, "e." + Employee.IDEMPLOYEE));
    } else if (onlyOperations) {
        crit.add(Restrictions.isNotNull("ts." + Timesheet.OPERATION));
    }

    // Exluce projects closed
    if (!includeClosed) {
        crit.add(Restrictions.and(Restrictions.ne("p." + Project.STATUS, Constants.STATUS_CLOSED),
                Restrictions.ne("p." + Project.STATUS, Constants.STATUS_ARCHIVED)));
    }

    // Filter by User. Settings by company for last approval. 
    if (profile.getIdProfile() == Constants.ROLE_FM) {

        crit.add(Restrictions.or(Restrictions.eq("p." + Project.EMPLOYEEBYFUNCTIONALMANAGER, user),
                Restrictions.and(Restrictions.isNull("ts." + Timesheet.PROJECTACTIVITY),
                        Restrictions.eq("e." + Employee.PERFORMINGORG, user.getPerformingorg()))));
    } else if (profile.getIdProfile() == Constants.ROLE_PMO) {

        crit.add(Restrictions.or(Restrictions.eq("p." + Project.PERFORMINGORG, user.getPerformingorg()),
                Restrictions.and(Restrictions.isNull("ts." + Timesheet.PROJECTACTIVITY),
                        Restrictions.eq("e." + Employee.PERFORMINGORG, user.getPerformingorg()))));
    }

    return crit.list();
}

From source file:es.sm2.openppm.core.dao.EmployeeDAO.java

License:Open Source License

/**
 * Find Employees where inputed hours is approval
 * /*  w ww.j  ava  2s. co  m*/
 * @param project
 * @param since
 * @param until
 * @return
 */
@SuppressWarnings("unchecked")
public List<Employee> findInputedInProject(Project project, Date since, Date until) {

    Criteria crit = getSession().createCriteria(getPersistentClass())
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    Criteria members = crit.createCriteria(Employee.TEAMMEMBERS)
            .add(Restrictions.or(Restrictions.eq(Teammember.STATUS, Constants.RESOURCE_ASSIGNED),
                    Restrictions.eq(Teammember.STATUS, Constants.RESOURCE_RELEASED)));

    if (since != null && until != null) {

        members.add(Restrictions.disjunction().add(Restrictions.between(Teammember.DATEIN, since, until))
                .add(Restrictions.between(Teammember.DATEOUT, since, until))
                .add(Restrictions.and(Restrictions.le(Teammember.DATEIN, since),
                        Restrictions.ge(Teammember.DATEOUT, until))));
    }
    members.createCriteria(Teammember.PROJECTACTIVITY).add(Restrictions.eq(Projectactivity.PROJECT, project));

    Criteria sheets = crit.createCriteria(Employee.TIMESHEETS)
            .add(Restrictions.eq(Timesheet.STATUS, Constants.TIMESTATUS_APP3));

    if (since != null && until != null) {
        sheets.add(Restrictions.disjunction().add(Restrictions.between(Timesheet.INITDATE, since, until))
                .add(Restrictions.between(Timesheet.ENDDATE, since, until))
                .add(Restrictions.and(Restrictions.le(Timesheet.INITDATE, since),
                        Restrictions.ge(Timesheet.ENDDATE, until))));
    }
    sheets.createCriteria(Timesheet.PROJECTACTIVITY).add(Restrictions.eq(Projectactivity.PROJECT, project));

    crit.createCriteria(Employee.CONTACT).addOrder(Order.asc(Contact.FULLNAME));

    crit.setFetchMode(Employee.CALENDARBASE, FetchMode.JOIN);

    return crit.list();
}

From source file:es.sm2.openppm.core.dao.EmployeeDAO.java

License:Open Source License

/**
 * Find imputed in projects//from  w  w  w  .  jav  a2  s  .  c  om
 *
 * @param projects
 * @param since
 * @param until
 * @param idResourcePool
 * @param activities
 * @return
 */
@SuppressWarnings("unchecked")
public List<Employee> findInputedInProjects(List<Project> projects, Date since, Date until,
        Integer idResourcePool, List<Projectactivity> activities) {

    List<Employee> employees = null;

    if (ValidateUtil.isNotNull(projects) || ValidateUtil.isNotNull(activities)) {

        Criteria crit = getSession().createCriteria(getPersistentClass())
                .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

        if (idResourcePool != null) {
            crit.add(Restrictions.eq(Employee.RESOURCEPOOL, new Resourcepool(idResourcePool)));
        }

        // Timesheet filter by status app3 and dates and projects
        //
        Criteria sheets = crit.createCriteria(Employee.TIMESHEETS)
                .add(Restrictions.eq(Timesheet.STATUS, Constants.TIMESTATUS_APP3));

        if (since != null && until != null) {

            sheets.add(Restrictions.disjunction().add(Restrictions.between(Timesheet.INITDATE, since, until))
                    .add(Restrictions.between(Timesheet.ENDDATE, since, until))
                    .add(Restrictions.and(Restrictions.le(Timesheet.INITDATE, since),
                            Restrictions.ge(Timesheet.ENDDATE, until))));
        }

        if (projects != null) {
            Criteria activitiesCrit = sheets.createCriteria(Timesheet.PROJECTACTIVITY)
                    .add(Restrictions.in(Projectactivity.PROJECT, projects));

            // Select employees whose activity is control account
            Criteria wbsnodeCrit = activitiesCrit.createCriteria(Projectactivity.WBSNODE)
                    .add(Restrictions.eq(Wbsnode.ISCONTROLACCOUNT, true));

        } else if (activities != null) {
            sheets.add(Restrictions.in(Timesheet.PROJECTACTIVITY, activities));
        }

        crit.createCriteria(Employee.CONTACT).addOrder(Order.asc(Contact.FULLNAME));

        employees = crit.list();
    }

    return employees;
}