Example usage for org.hibernate FetchMode JOIN

List of usage examples for org.hibernate FetchMode JOIN

Introduction

In this page you can find the example usage for org.hibernate FetchMode JOIN.

Prototype

FetchMode JOIN

To view the source code for org.hibernate FetchMode JOIN.

Click Source Link

Document

Fetch using an outer join.

Usage

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

/**
 * metodo que consulta las facturas por fecha y por sede
 *
 * @param fechaInicial//from w w w.j av  a 2s. 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  .  j av  a 2 s .  c  om*/
 * @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;
}

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

/**
 * Funcion con la cual se obtiene una factura por medio de su id
 *
 * @param id/*  w w  w . j a  v a  2  s  .  c o m*/
 * @return
 */
public FacturaEntity getFacturaForId(Integer id) {
    FacturaEntity factura = null;
    boolean validaFecha = true;
    try {
        initOperation();
        Criteria criteria = sesion.createCriteria(FacturaEntity.class);
        criteria.add(Restrictions.eq("id", id));
        criteria.setFetchMode("cliente", FetchMode.JOIN);
        criteria.setFetchMode("idSede", FetchMode.JOIN);
        factura = (FacturaEntity) criteria.uniqueResult();
        if (factura != null) {
            Criteria crit = sesion.createCriteria(DetProduFacturaEntity.class);
            crit.add(Restrictions.eq("idFactura", id));
            crit.setFetchMode("producto", FetchMode.JOIN);
            crit.setFetchMode("producto.referencia", FetchMode.JOIN);
            crit.setFetchMode("producto.marca", FetchMode.JOIN);
            crit.setFetchMode("producto.categoria", FetchMode.JOIN);
            crit.setFetchMode("producto.subcuenta", FetchMode.JOIN);
            List<DetProduFacturaEntity> aux = crit.list();
            if (aux != null) {
                if (!aux.isEmpty()) {
                    if (validaFecha) {
                        validaFecha = false;
                        factura.setFechaExacta(aux.get(0).getFecha());
                    }
                    //                        for (DetProdFacturaTable detalle : aux) {
                    //                            Query query3 = sesion.createQuery("from ProductoTable where id = :idDska ");
                    //                            query3.setParameter("idDska", detalle.getIdProducto());
                    //                            detalle.setProducto((ProductoTable) query3.uniqueResult());
                    //                        }
                    factura.setDetalleProductos(aux);
                }
            }
            //Obtengo las recetas

            factura.setDetalleRecetas(sesion.createCriteria(DetReceFacturaEntity.class)
                    .add(Restrictions.eq("factura", id)).list());
            //                Query query2 = sesion.createQuery("from DetReceFacturacionTable where idFact = :idFact ");
            //                query2.setParameter("idFact", id);
            //                List<DetReceFacturacionTable> aux2 = query2.list();
            //                if (aux2 != null) {
            //                    if (!aux2.isEmpty()) {
            //                        if (validaFecha) {
            //                            validaFecha = false;
            //                            factura.setFechaExacta(aux2.get(0).getFecha());
            //                        }
            //                        for (DetReceFacturacionTable receta : aux2) {
            //                            Query query4 = sesion.createQuery("from RecetaTable where id = :idRece ");
            //                            query4.setParameter("idRece", receta.getIdRece());
            //                            receta.setReceta((RecetaTable) query4.uniqueResult());
            //                        }
            //                        factura.setDetalleRecetas(aux2);
            //                    }
            //                }
        }
        //            if (factura != null) {
        //                Query query2 = sesion.createQuery("from Cliente WHERE id = :idCliente ");
        //                query2.setParameter("idCliente", factura.getIdCliente());
        //                factura.setCliente((Cliente) query2.uniqueResult());
        //            }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return factura;
}

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

/**
 * Funcion con la cual se obtiene una factura por medio de su id
 *
 * @param id/*  w  w w .  j a  va2 s .  co  m*/
 * @return
 */
public FacturaEntity getFacturaForConsec(Integer idRsfa, Integer consec) {
    FacturaEntity factura = null;
    boolean validaFecha = true;
    try {
        initOperation();
        Criteria criteria = sesion.createCriteria(FacturaEntity.class);
        criteria.add(Restrictions.eq("resolucion", idRsfa));
        criteria.add(Restrictions.eq("consecutivo", consec));
        criteria.setFetchMode("cliente", FetchMode.JOIN);
        criteria.setFetchMode("idSede", FetchMode.JOIN);
        factura = (FacturaEntity) criteria.uniqueResult();
        if (factura != null) {
            Criteria crit = sesion.createCriteria(DetProduFacturaEntity.class);
            crit.add(Restrictions.eq("idFactura", factura.getId()));
            crit.setFetchMode("producto", FetchMode.JOIN);
            crit.setFetchMode("producto.referencia", FetchMode.JOIN);
            crit.setFetchMode("producto.marca", FetchMode.JOIN);
            crit.setFetchMode("producto.categoria", FetchMode.JOIN);
            crit.setFetchMode("producto.subcuenta", FetchMode.JOIN);
            List<DetProduFacturaEntity> aux = crit.list();
            if (aux != null) {
                if (!aux.isEmpty()) {
                    if (validaFecha) {
                        validaFecha = false;
                        factura.setFechaExacta(aux.get(0).getFecha());
                    }
                    factura.setDetalleProductos(aux);
                }
            }
            factura.setDetalleRecetas(sesion.createCriteria(DetReceFacturaEntity.class)
                    .add(Restrictions.eq("factura", factura.getId())).list());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return factura;
}

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

/**
 * Funcion que consulta los movimientos contables de una factura especifica
 *
 * @param idFactura// w ww .  ja  va  2  s  . c  o  m
 * @param estado
 * @return
 */
public List<MoviContableEntity> consultaMovContableXFac(Integer idFactura, String estado) {
    List<MoviContableEntity> rta = null;
    try {
        Integer idF = idFactura;
        if ("notcr".equalsIgnoreCase(estado)) {
            idFactura = llamaProcesoIdCancelacion(idFactura);
            if (idFactura == -1) {
                idFactura = idF;
                idF = -1;
            }
        }
        initOperation();
        Criteria crit = sesion.createCriteria(MoviContableEntity.class)
                .add(Restrictions.eq("idLlave", idFactura));
        if (idF != -1) {
            crit.add(Restrictions.eq("llave", estado));
        }
        rta = crit.addOrder(Order.asc("naturaleza")).setFetchMode("subcuenta", FetchMode.JOIN)
                .setFetchMode("tipoDocumento", FetchMode.JOIN).setFetchMode("auxiliar", FetchMode.JOIN).list();

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

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

/**
 * metodo que consulta las facturas de compra temporales por estado
 *
 * @param estado/*from   ww w  . j  a  v a  2  s  .c o  m*/
 * @param idSede
 * @param fechaIncial
 * @param fechaFinal
 * @return
 */
public List<FacturaCompraTmpEntity> consultaFacturaTemporalXEstado(String estado, Integer idSede,
        Date fechaIncial, Date fechaFinal) {
    List<FacturaCompraTmpEntity> rta = new ArrayList<>();
    try {
        this.initOperation();
        Criteria crit = sesion.createCriteria(FacturaCompraTmpEntity.class);
        crit.setFetchMode("proveedor", FetchMode.JOIN);
        crit.setFetchMode("proveedor.retenciones", FetchMode.JOIN);
        crit.setFetchMode("proveedor.ciudad", FetchMode.JOIN);
        crit.setFetchMode("proveedor.municipio", FetchMode.JOIN);
        crit.setFetchMode("sede", FetchMode.JOIN);
        if (!"".equalsIgnoreCase(estado)) {
            crit.add(Restrictions.eq("estado", estado));
        }
        if (fechaIncial != null && fechaFinal != null) {
            fechaFinal.setHours(23);
            fechaFinal.setMinutes(59);
            fechaFinal.setSeconds(59);
            crit.add(Restrictions.between("fechaFacCompra", fechaIncial, fechaFinal));
        }
        if (idSede != null && idSede != 0) {
            crit.createAlias("sede", "s").add(Restrictions.eq("s.id", idSede));
        }
        crit.addOrder(Order.desc("id"));
        rta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rta;

}

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

/**
 * metodo que consulta la factura temporal de compra por id
 *
 * @param idFactura/* w w  w .  j  a v a  2s  .c  o  m*/
 * @return
 */
public FacturaCompraTmpEntity consultaFacturaTemporal(Integer idFactura) {
    FacturaCompraTmpEntity respuesta = new FacturaCompraTmpEntity();
    try {
        initOperation();
        Criteria crit = this.sesion.createCriteria(FacturaCompraTmpEntity.class);
        crit.setFetchMode("proveedor", FetchMode.EAGER);
        crit.setFetchMode("sede", FetchMode.JOIN);
        crit.setFetchMode("proveedor.retenciones", FetchMode.JOIN);
        crit.setFetchMode("proveedor.municipio", FetchMode.JOIN);
        crit.setFetchMode("proveedor.ciudad", FetchMode.JOIN);
        respuesta = (FacturaCompraTmpEntity) crit.add(Restrictions.eq("id", idFactura)).uniqueResult();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return respuesta;
}

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

/**
 * Funcion con la cual obtengo las remisiones basandome en el id del cliente
 *
 * @param idCliente/*ww  w  .  j  a v a2  s .  c  o m*/
 * @return
 */
public List<RemisionEntity> obtieneRemisionesXCliente(Integer idCliente, Date fechaIni, Date fechaFin) {
    List<RemisionEntity> rta = null;
    try {
        this.initOperation();
        Criteria crit = sesion.createCriteria(RemisionEntity.class);
        crit.setFetchMode("usuario.perfil", FetchMode.JOIN);
        crit.setFetchMode("usuario.persona", FetchMode.JOIN);
        crit.setFetchMode("usuario.sede", FetchMode.JOIN);
        if (fechaIni != null && fechaFin != null) {
            crit.add(Restrictions.between("fechaCreacion", fechaIni, fechaFin));
        }
        rta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
        rta = null;
    }
    return rta;
}

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

/**
 * Funcion con la cual obtengo los detalles de la remision teniendo en
 * cuenta su id/*  w  ww. j a  va  2 s.c  om*/
 *
 * @param idRemision
 * @return
 */
public List<DetProdRemision> buscaDetallesRemision(Integer idRemision) {
    List<DetProdRemision> rta = null;
    try {
        this.initOperation();
        Criteria crit = sesion.createCriteria(DetProdRemision.class);
        crit.add(Restrictions.eq("idRemi", idRemision));
        crit.setFetchMode("producto.categoria", FetchMode.JOIN);
        crit.setFetchMode("producto.marca", FetchMode.JOIN);
        crit.setFetchMode("producto.referencia", FetchMode.JOIN);
        crit.setFetchMode("producto.subcuenta", FetchMode.JOIN);
        rta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rta;
}

From source file:co.com.codesoftware.logica.importacion.ImportacionLogica.java

/**
 * Funcion con la cual obtengo los gastos de una importacion
 *
 * @return/*w  ww . j  a  va 2s.  c o m*/
 */
public List<GastoImpoEntity> obtenerGastosImportacion(Integer idImpo) {
    List<GastoImpoEntity> rta = null;
    try {
        this.initOperation();
        Criteria crit = this.sesion.createCriteria(GastoImpoEntity.class);
        crit.add(Restrictions.eq("idImpo", idImpo));
        crit.setFetchMode("proveedor", FetchMode.JOIN);
        crit.createAlias("proveedor", "prov");
        crit.setFetchMode("proveedor.ciudad", FetchMode.JOIN);
        crit.setFetchMode("proveedor.municipio", FetchMode.JOIN);
        crit.setFetchMode("proveedor.retenciones", FetchMode.JOIN);
        crit.addOrder(Order.asc("id"));
        rta = crit.list();
        if (rta != null) {
            int i = 0;
            for (GastoImpoEntity item : rta) {
                i++;
                item.setConsecutivo(i);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rta;
}