Example usage for org.hibernate.criterion Restrictions between

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

Introduction

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

Prototype

public static Criterion between(String propertyName, Object low, Object high) 

Source Link

Document

Apply a "between" constraint to the named property

Usage

From source file:br.ufg.reqweb.dao.RequerimentoDao.java

@Transactional(readOnly = true)
public List<Requerimento> find(String sortField, String sortOrder, Map<String, Object> filters) {
    if (filters == null) {
        filters = new HashMap();
    }//from w  ww. j  a  va  2  s . co  m
    try {
        Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Requerimento.class);
        for (String field : filters.keySet()) {
            /**
             * login eq / tipoRequerimento eq / termo like / dataCriacao
             * between
             */
            if (field.equals("login")) {
                criteria.createAlias("discente", "d");
                criteria.add(Restrictions.and(Restrictions.eq("d.login", filters.get(field))));
            }
            if (field.equals("turmas")) {
                criteria.createAlias("itemRequerimentoList", "i");
                List<Turma> turmas = (List<Turma>) filters.get(field);
                criteria.add(Restrictions.and(Restrictions.in("i.turma", turmas)));
            }
            if (field.equals("tipoRequerimento")) {
                criteria.add(Restrictions.and(Restrictions.eq(field, filters.get(field))));
            }
            if (field.equals("termo")) {
                criteria.createAlias("discente", "d");
                criteria.add(Restrictions.or(Restrictions.eq("d.matricula", filters.get("termo")), Restrictions
                        .like("d.nome", filters.get("termo").toString(), MatchMode.ANYWHERE).ignoreCase()));
            }
            if (field.equals("curso")) {
                criteria.createAlias("discente.perfilList", "p");
                criteria.add(Restrictions.and(Restrictions.eq("p.curso", filters.get(field))));
            }
            if (field.equals("dataCriacao")) {
                Date[] arrayDate = (Date[]) filters.get("dataCriacao");
                criteria.add(Restrictions.and(Restrictions.between("dataCriacao", arrayDate[0], arrayDate[1])));
            }
        }
        if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) {
            if (sortOrder.toLowerCase().equals("asc")) {
                criteria.addOrder(Property.forName(sortField).asc());
            }
            if (sortOrder.toLowerCase().equals("desc")) {
                criteria.addOrder(Property.forName(sortField).desc());
            }
        }
        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        return criteria.list();
    } catch (HibernateException e) {
        System.out.println("query error: " + e.getMessage());
        return new ArrayList<>();
    }
}

From source file:by.andrew.pakhomov.testtask.web.controller.SpentTimeRecordController.java

@RequestMapping("/betweendates")
public String getSpentTimeBetweenDates(@RequestParam(name = "startDate", required = false) String startDate,
        @RequestParam(name = "finishDate", required = false) String finishDate, Model model) {
    model.addAttribute("records", Collections.emptyList());
    if (startDate == null && finishDate == null) {
        return "report-spent-time-between-dates";
    } else {/*from w w  w.  j  a  va  2s  . c o m*/
        model.addAttribute("startDate", startDate);
        model.addAttribute("finishDate", finishDate);
    }

    List<String> errors = new ArrayList<>(2);

    Date startDateTime = null;
    Date finishDateTime = null;
    try {
        startDateTime = DATE_FORMAT.parse(startDate);
    } catch (ParseException ex) {
        errors.add(
                "       --");
    }
    try {
        finishDateTime = DATE_FORMAT.parse(finishDate);
    } catch (ParseException ex) {
        errors.add(
                "       --");
    }

    if (!errors.isEmpty()) {
        this.addFormErrors(model, errors.toArray(new String[errors.size()]));
        return "report-spent-time-between-dates";
    }

    final Date finalStartDate = startDateTime;
    final Date finalFinishDate = finishDateTime;

    this.executeSafely(model, (Session session) -> {
        Criteria cr = session.createCriteria(SpentTimeRecord.class);
        cr.add(Restrictions.between("registrationDate", finalStartDate, finalFinishDate));
        List<SpentTimeRecord> records = cr.list();
        model.addAttribute("records", records);
        return true;
    });

    return "report-spent-time-between-dates";
}

From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java

License:Open Source License

@Override
public PagingLoadResult<Loan> getLoans(PagingLoadConfig configs) throws PigeException {

    PermissionHelper.checkLoanManagementPermission(getThreadLocalRequest());

    logger.debug("Rcupration des emprunts " + "[Pagination: dpart=" + configs.getOffset() + ", max="
            + configs.getLimit() + "] ...");

    Transaction tx = null;//from   w  w w .ja v  a 2 s.co  m
    List<Loan> loans = null;
    Session session = null;
    Integer loanCount = 0;
    Integer offset = 0;
    Integer limit = 0;

    try {
        session = PigeHibernateUtil.openSession();
        tx = session.beginTransaction();

        Date startDate = null;
        Date endDate = null;

        Criteria loansCriteria = session.createCriteria(Loan.class);
        Criteria usersCriteria = null;

        List<FilterConfig> searchConfigs = configs.get(PIGE.SEARCH_CONFIGS);
        List<FilterConfig> filterConfigs = configs.get(PIGE.FILTER_CONFIGS);

        List<FilterConfig> userParam = null;
        List<FilterConfig> loanParam = null;

        if (searchConfigs != null) {
            for (FilterConfig fc : searchConfigs) {
                if (fc.getField().equals("params")) {
                    logger.debug("Extraction du FilterConfig 'params'...");
                    BaseListFilterConfig blfc = (BaseListFilterConfig) fc;
                    userParam = blfc.get(PIGE.USER_CONFIGS);
                    logger.debug("Extraction de la liste 'user-param'..." + (userParam == null ? "N/D" : "OK"));
                    loanParam = blfc.get(PIGE.LOAN_CONFIGS);
                    logger.debug("Extraction de la liste 'loan-param'..." + (loanParam == null ? "N/D" : "OK"));
                    break;
                }
            }
        }

        Criterion filterCriterion = null;
        Iterator<FilterConfig> itr = null;
        FilterConfig fc = null;

        if (loanParam != null) {
            itr = loanParam.iterator();
            while (itr.hasNext()) {
                fc = itr.next();
                if (fc instanceof BaseDateFilterConfig) {
                    BaseDateFilterConfig dateFC = (BaseDateFilterConfig) fc;
                    startDate = dateFC.get(PIGE.START_DATE, null);
                    endDate = dateFC.get(PIGE.END_DATE, null);
                    itr.remove();
                    break;
                }
            }

            FilterConfig matchModeConfig = new BaseBooleanFilterConfig();
            matchModeConfig.setField(PIGE.MATCH_MODE);
            matchModeConfig.setValue(Boolean.FALSE);
            loanParam.add(matchModeConfig);
            filterCriterion = PigeHibernateUtil.buildFilterCriterion(loanParam);
            if (filterCriterion != null) {
                loansCriteria.add(filterCriterion);
            }

            if (startDate != null) {
                logger.debug("Restrictions sur la date d'chance: entre " + startDate.toString() + " et "
                        + (endDate == null ? new Date() : endDate) + " inclusivement...");
                loansCriteria.add(Restrictions.between(Loan.START_DATE_REF, startDate,
                        (endDate == null ? new Date() : endDate)));
            } else if (endDate != null) {
                logger.debug("Restrictions sur la date d'chance: <= " + endDate.toString());
                loansCriteria.add(Restrictions.le(Loan.START_DATE_REF, endDate));
            }
        }

        if (filterConfigs != null && filterConfigs.size() > 0) {
            filterCriterion = PigeHibernateUtil.buildFilterCriterion(filterConfigs);
            if (filterCriterion != null) {
                loansCriteria.add(filterCriterion);
            }
        }

        usersCriteria = loansCriteria.createCriteria(Loan.USER_REF, "usr", Criteria.LEFT_JOIN);

        if (userParam != null) {
            String userScope = null;
            itr = userParam.iterator();
            while (itr.hasNext()) {
                fc = itr.next();
                if (fc.getField().equals("scope")) {
                    userScope = (String) fc.getValue();
                    itr.remove();
                    break;
                }
            }
            if (userScope != null && !userScope.isEmpty() && !userScope.equals("*")) {
                logger.debug(
                        "Restriction de la recherche sur un usager " + "spcifique: [" + userScope + "] ...");
                usersCriteria.add(Restrictions.like(User.IDENTIFIER_REF, userScope, MatchMode.EXACT));
            } else {
                logger.debug("Restriction de la recherche sur un ou des " + "usager spcifique...");
                filterCriterion = PigeHibernateUtil.buildFilterCriterion(userParam);
                if (filterCriterion != null) {
                    usersCriteria.add(filterCriterion);
                }
            }
        }

        loanCount = (Integer) loansCriteria.setProjection(Projections.rowCount()).uniqueResult();

        offset = configs.getOffset();
        limit = loanCount;
        if (limit > 0 && configs.getLimit() > 0) {
            limit = Math.min(configs.getLimit(), limit);
        }

        logger.debug("Paramtres d'extraction des donnes: dpart=" + offset + ", max=" + limit + "] ...");

        loansCriteria.setProjection(null);
        loansCriteria.setResultTransformer(Criteria.ROOT_ENTITY);

        loans = (List) loansCriteria.addOrder(Order.asc("usr." + User.LOAN_NO_REF)).setFirstResult(offset)
                .setMaxResults(limit).list();

        tx.commit();
        logger.debug("Rcupration russie!");
    } catch (Exception hex) {
        logger.error(hex);
        if (tx != null) {
            tx.rollback();
        }
    } finally {
        if (session != null) {
            session.close();
        }
    }

    if (loans == null) {
        loans = new ArrayList();
    }

    return new BasePagingLoadResult(loans, offset, loanCount);
}

From source file:cn.newtouch.hibernate.dao.StudentDAO.java

License:Open Source License

public static void main(String[] args) {
    try {/*from w ww . ja va 2s .c om*/
        Session session = HibernateUtil.getSession();
        String hql = " from Student";
        List<Student> userList = session.createQuery(hql).list();
        System.out.println("=====1=======" + userList.size());
        Criteria criteria = session.createCriteria(Student.class);
        // 
        criteria.add(Restrictions.eq("name", "HZZ"));
        // map
        criteria.add(Restrictions.allEq(new HashMap<String, String>()));
        // 
        criteria.add(Restrictions.gt("id", new Long(1)));
        // 
        criteria.add(Restrictions.ge("id", new Long(1)));
        // ?
        criteria.add(Restrictions.lt("id", new Long(1)));
        // ?
        criteria.add(Restrictions.le("id", new Long(1)));
        // xxxyyy
        criteria.add(Restrictions.between("id", new Long(1), new Long(2)));
        // ?
        criteria.add(Restrictions.like("name", "H"));
        // and?
        criteria.add(Restrictions.and(Restrictions.ge("id", new Long(1)), Restrictions.ge("id", new Long(1))));
        // or?
        criteria.add(Restrictions.or(Restrictions.ge("id", new Long(1)), Restrictions.ge("id", new Long(1))));
        userList = criteria.list();
        System.out.println("=====2=======" + userList.size());
        Student student = new Student();
        student.setId(123456L);
        student.setName("hzz");
        student.setAge(14);
        save(student);

        System.out.println("OK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");

    } catch (Exception e) {
        e.printStackTrace();

    }
}

From source file:co.com.codesoftware.logic.ProductoLogic.java

/**
 * Funcion con la cual busco el//from   www  . j  av a2s. c o m
 *
 * @param idDska
 * @param idSede
 * @param fechaIni
 * @param fechaFin
 * @return
 */
public List<KardexProductoEntity> buscaKardexProducto(Integer idDska, Integer idSede, Date fechaIni,
        Date fechaFin) {
    List<KardexProductoEntity> rta = null;
    try {
        initOperation();
        Criteria crit = sesion.createCriteria(KardexProductoEntity.class).createAlias("producto", "prod");
        crit.add(Restrictions.eq("prod.id", idDska)).setFetchMode("sede", FetchMode.JOIN)
                .setFetchMode("producto", FetchMode.JOIN).setFetchMode("usuario", FetchMode.JOIN)
                .setFetchMode("usuario.persona", FetchMode.JOIN).setFetchMode("usuario.sede", FetchMode.JOIN)
                .setFetchMode("usuario.idPerfil", FetchMode.JOIN).setFetchMode("movInv", FetchMode.JOIN);
        crit.addOrder(Order.desc("id"));
        if (fechaIni != null && fechaFin == null) {
            crit.add(Restrictions.ge("fecha", fechaIni));
        } else if (fechaIni == null && fechaFin != null) {
            crit.add(Restrictions.lt("fecha", fechaFin));
        } else if (fechaIni != null && fechaFin != null) {
            crit.add(Restrictions.between("fecha", fechaIni, fechaFin));
        }
        if (idSede != -1) {
            crit.createAlias("sede", "sed").add(Restrictions.eq("sed.id", idSede));
        }
        rta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rta;
}

From source file:co.com.codesoftware.logic.productos.FacturaCompraLogic.java

/**
 * funcion que consulta las facturas por vencer
 *
 * @return/* www.j a v  a  2 s.c  o  m*/
 */
public List<FacturaCompraEntity> consultaFacturaCompraXVencer() {
    List<FacturaCompraEntity> facturas = new ArrayList<>();
    try {
        ParametrosEmpresaLogic logic = new ParametrosEmpresaLogic();
        ParametrosEntity param = logic.consultaDiasParametrizadosEnvioCorreo();
        Date fechaFinal = new Date();
        fechaFinal.setHours(23);
        fechaFinal.setMinutes(59);
        fechaFinal.setSeconds(59);
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(fechaFinal);
        calendar.add(Calendar.DAY_OF_YEAR, Integer.parseInt(param.getValor()) * -1);
        Date fechaInicial = calendar.getTime();
        initOperation();
        facturas = sesion.createCriteria(FacturaCompraEntity.class)
                .add(Restrictions.between("fechaFacCompra", fechaInicial, fechaFinal))
                .add(Restrictions.ne("estado", "P")).list();

    } catch (Exception e) {
        e.printStackTrace();
    }
    return facturas;

}

From source file:co.com.codesoftware.logica.contabilidad.ContabilidadLogica.java

/**
 * Funcion con la cual obtengo los movimientos contables de acuerdo a las
 * fechas y al tipo de documento//from www  . j a v  a2 s  .c  o  m
 *
 * @param fechaIn
 * @param fechaFin
 * @param tipoDoc
 * @return
 */
public List<MoviContableEntity> consultarMovimientoscontable(Date fechaIn, Date fechaFin, String tipoDoc) {
    List<MoviContableEntity> rta = null;
    try {
        this.initOperation();
        Criteria crit = this.sesion.createCriteria(MoviContableEntity.class);
        crit.setFetchMode("subcuenta", FetchMode.JOIN);
        crit.setFetchMode("tipoDocumento", FetchMode.JOIN);
        crit.setFetchMode("auxiliar", FetchMode.JOIN);
        if (!"-1".equalsIgnoreCase(tipoDoc)) {
            crit.add(Restrictions.eq("llave", tipoDoc));
        }
        if (fechaIn != null || fechaFin != null) {
            if (fechaIn != null && fechaFin != null) {
                fechaFin.setHours(23);
                fechaFin.setMinutes(59);
                fechaFin.setSeconds(59);
                crit.add(Restrictions.between("fecha", fechaIn, fechaFin));
            } else if (fechaIn != null) {
                crit.add(Restrictions.le("fecha", fechaIn));
            } else if (fechaFin != null) {
                crit.add(Restrictions.gt("fecha", fechaFin));
            }

        }
        rta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rta;
}

From source file:co.com.codesoftware.logica.contabilidad.ContabilidadLogica.java

public List<MoviContableEntity> consultarMovContXCuenta(Date fechaIn, Date fechaFin, String cuenta, String tipo,
        Integer tercero) {/*  w ww .  ja  va 2  s.  c o  m*/
    List<MoviContableEntity> rta = null;
    try {
        System.out.println("cuenta:" + cuenta);
        System.out.println("tipo:" + tipo);
        System.out.println("tercero:" + tercero);
        this.initOperation();
        Criteria crit = this.sesion.createCriteria(MoviContableEntity.class);
        crit.setFetchMode("subcuenta", FetchMode.JOIN);
        crit.setFetchMode("tipoDocumento", FetchMode.JOIN);
        crit.setFetchMode("auxiliar", FetchMode.JOIN);
        if (cuenta != null && !"".equalsIgnoreCase(cuenta)) {
            crit.createAlias("subcuenta", "sbcu");
            crit.add(Restrictions.like("sbcu.codigo", cuenta, MatchMode.ANYWHERE));
        }
        //MO-001
        if (tipo != null && !"".equalsIgnoreCase(tipo)) {
            crit.add(Restrictions.eq("tipoTercero", Integer.parseInt(tipo)));
        }
        if (tercero != null && tercero != -1) {
            crit.add(Restrictions.eq("tercero", tercero));
        }
        //MO-001
        if (fechaIn != null || fechaFin != null) {
            if (fechaIn != null && fechaFin != null) {
                fechaFin.setHours(23);
                fechaFin.setMinutes(59);
                fechaFin.setSeconds(59);
                crit.add(Restrictions.between("fecha", fechaIn, fechaFin));
            } else if (fechaIn != null) {
                crit.add(Restrictions.le("fecha", fechaIn));
            } else if (fechaFin != null) {
                crit.add(Restrictions.gt("fecha", fechaFin));
            }

        }
        crit.addOrder(Order.desc("id"));
        rta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rta;
}

From source file:co.com.codesoftware.logica.facturacion.FacturacionLogica.java

/**
 * metodo que consulta las facturas por fecha y por sede
 *
 * @param fechaInicial//from ww w.  ja v a 2 s .  c  o  m
 * @param fechaFinal
 * @param sede
 * @param estado
 * @return
 */
public List<FacturaEntity> obtieneFacturasXSede(Date fechaInicial, Date fechaFinal, Integer sede,
        String estado) {
    List<FacturaEntity> rta = null;
    try {
        initOperation();
        Criteria crit = this.sesion.createCriteria(FacturaEntity.class);
        crit.setFetchMode("idSede", FetchMode.JOIN).setFetchMode("cliente", FetchMode.JOIN)
                .createAlias("idSede", "sed").add(Restrictions.eq("sed.id", sede))
                .add(Restrictions.between("fecha", fechaInicial, fechaFinal)).addOrder(Order.desc("id"));
        if (estado == null) {
            estado = "";
        }
        if (!"".equalsIgnoreCase(estado.trim())) {
            if ("R".equalsIgnoreCase(estado.trim())) {
                crit.add(Restrictions.sqlRestriction("fact_fact in (select remi_fact from in_tremi)"));
            } else if ("PC".equalsIgnoreCase(estado.trim())) {
                String[] valores = new String[] { "S", "A", "R" };
                crit.add(Restrictions.in("estado", valores));
            } else if ("P".equalsIgnoreCase(estado.trim())) {
                crit.add(Restrictions.eq("estado", estado.trim()));
            } else if ("C".equalsIgnoreCase(estado.trim())) {
                crit.add(Restrictions.eq("estado", estado.trim()));
            }
        }
        rta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rta;

}

From source file:co.com.codesoftware.logica.facturacion.FacturacionLogica.java

/**
 * Funcion con la cual obtengo facturas por medio de una serie de filtros
 *
 * @param fechaInicial/* w w  w  .  ja  v a 2  s .c o  m*/
 * @param fechaFinal
 * @param idFactura
 * @param idCliente
 * @param codExterno
 * @return
 */
public List<FacturaEntity> obtieneFacturasXFiltros(Date fechaInicial, Date fechaFinal, Integer idFactura,
        Integer idCliente, String codExterno) {
    List<FacturaEntity> facturas = null;
    try {
        this.initOperation();
        Criteria crit = sesion.createCriteria(FacturaEntity.class);
        crit.setFetchMode("idSede", FetchMode.JOIN);
        crit.setFetchMode("cliente", FetchMode.JOIN);
        //Numero desde el cual se inicio la facturacion
        Integer iniFact = this.buscaConcecutivoFactura();
        if (idFactura == null) {
            idFactura = 0;
        }
        //idFactura = idFactura - iniFact;
        if (idFactura > 0) {
            crit.add(Restrictions.eq("id", idFactura));
        } else {
            if (idCliente != null && idCliente > 0) {
                crit.createAlias("cliente", "cli");
                crit.add(Restrictions.eq("cli.id", idCliente));
            }
            if (codExterno != null && !"".equalsIgnoreCase(codExterno)) {
                Integer idProducto = this.buscaIdProductoXCodigoExterno(codExterno);
                if (idProducto != null && idProducto != 0) {
                    ArrayList<Integer> idFacturas = this.obtieneFacturasXCodigoProducto(idProducto);
                    if (idFacturas != null) {
                        crit.add(Restrictions.in("id", idFacturas));
                    }
                }
            }
            if (fechaInicial != null && fechaFinal != null) {
                fechaFinal.setHours(23);
                fechaFinal.setMinutes(59);
                fechaFinal.setSeconds(59);
                crit.add(Restrictions.between("fecha", fechaInicial, fechaFinal));
            }
        }
        crit.addOrder(Order.desc("id"));
        facturas = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return facturas;
}