Example usage for org.hibernate Criteria setFetchMode

List of usage examples for org.hibernate Criteria setFetchMode

Introduction

In this page you can find the example usage for org.hibernate Criteria setFetchMode.

Prototype

public Criteria setFetchMode(String associationPath, FetchMode mode) throws HibernateException;

Source Link

Document

Specify an association fetching strategy for an association or a collection of values.

Usage

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SampleDAO.java

License:Apache License

private final void fetchRelations(final Criteria criteria, final String relationName, final int relationDepth) {
    String relationPath = relationName;
    for (int i = 0; i < relationDepth; i++) {
        criteria.setFetchMode(relationPath, FetchMode.JOIN);
        relationPath += "." + relationName;
    }//  w  ww.java2s . c o m
}

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SampleDAO.java

License:Apache License

private List<SamplePE> listSamplesByCriteria(final Criteria basicCriteria, boolean withExperimentAndProperties,
        Criterion... additionalCriterions) throws DataAccessException {
    for (Criterion criterion : additionalCriterions) {
        basicCriteria.add(criterion);//ww  w  . ja  va 2 s .  c  o  m
    }
    final int count = DAOUtils.getCount(basicCriteria);
    if (withExperimentAndProperties) {
        basicCriteria.setFetchMode("experimentInternal", FetchMode.JOIN);
        if (count <= DAOUtils.MAX_COUNT_FOR_PROPERTIES) {
            basicCriteria.setFetchMode("sampleProperties", FetchMode.JOIN);
        } else {
            operationLog.info(String.format("Found %d samples, disable properties loading.", count));
        }
    }
    basicCriteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return cast(basicCriteria.list());
}

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SampleDAO.java

License:Apache License

public SamplePE tryToFindByPermID(String permID) throws DataAccessException {
    assert permID != null : "Unspecified permanent ID.";
    final Criteria criteria = getSession().createCriteria(ENTITY_CLASS);
    criteria.add(Restrictions.eq("permId", permID));
    criteria.setFetchMode("sampleType.sampleTypePropertyTypesInternal", FetchMode.JOIN);
    final SamplePE sample = (SamplePE) criteria.uniqueResult();
    if (operationLog.isDebugEnabled()) {
        operationLog.debug(String.format("Following sample '%s' has been found for " + "permanent ID '%s'.",
                sample, permID));/*w  w  w . j  ava  2s  .c om*/
    }
    return sample;
}

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SampleDAO.java

License:Apache License

public final SamplePE tryFindByCodeAndDatabaseInstance(final String sampleCode,
        final DatabaseInstancePE databaseInstance) {
    assert sampleCode != null : "Unspecified sample code.";
    assert databaseInstance != null : "Unspecified database instance.";

    final Criteria criteria = getSession().createCriteria(ENTITY_CLASS);
    addSampleCodeCriterion(criteria, sampleCode);
    criteria.add(Restrictions.eq("databaseInstance", databaseInstance));
    criteria.setFetchMode("sampleType.sampleTypePropertyTypesInternal", FetchMode.JOIN);
    final SamplePE sample = (SamplePE) criteria.uniqueResult();
    if (operationLog.isDebugEnabled()) {
        operationLog.debug(String.format(
                "Following sample '%s' has been found for " + "code '%s' and database instance '%s'.", sample,
                sampleCode, databaseInstance));
    }/* www.  j a  v a 2s.  co  m*/
    return sample;
}

From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SampleDAO.java

License:Apache License

public final SamplePE tryFindByCodeAndGroup(final String sampleCode, final GroupPE group) {
    assert sampleCode != null : "Unspecified sample code.";
    assert group != null : "Unspecified group.";

    final Criteria criteria = getSession().createCriteria(ENTITY_CLASS);
    addSampleCodeCriterion(criteria, sampleCode);
    criteria.add(Restrictions.eq("group", group));
    criteria.setFetchMode("sampleType.sampleTypePropertyTypesInternal", FetchMode.JOIN);
    final SamplePE sample = (SamplePE) criteria.uniqueResult();
    if (operationLog.isDebugEnabled()) {
        operationLog.debug(String.format("Following sample '%s' has been found for code '%s' and group '%s'.",
                sample, sampleCode, group));
    }/*from   w  w  w  .j av  a2 s  .  co m*/
    return sample;
}

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

/**
 * metodo que consulta los productos sin dependencias, es decir sin
 * joincolumn/*from ww w . j  a va2 s.  c  o  m*/
 *
 * @return
 */
public List<ProductoSimpleEntity> consultaProductos() {
    List<ProductoSimpleEntity> respuesta = null;
    try {
        initOperation();
        Criteria crit = sesion.createCriteria(ProductoSimpleEntity.class);
        crit.setFetchMode("referenciaObj", FetchMode.JOIN);
        crit.setFetchMode("categoriaObj", FetchMode.JOIN);
        crit.setFetchMode("marcaObj", FetchMode.JOIN);
        crit.addOrder(Order.asc("id"));
        respuesta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return respuesta;
}

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

/**
 * Funcion con la cual se realiza la consulta
 *
 * @param estado/*w w w. j  a  v  a2  s  .  co  m*/
 * @return
 */
public List<PorcentajePrecioEntity> buscaPorcentajePrecio(String estado) {
    List<PorcentajePrecioEntity> rta = null;
    try {
        initOperation();
        Criteria crit = this.sesion.createCriteria(PorcentajePrecioEntity.class);
        crit.add(Restrictions.eq("estado", estado));
        crit.setFetchMode("sede", FetchMode.JOIN);
        crit.setFetchMode("categoria", FetchMode.JOIN);
        crit.setFetchMode("referencia", FetchMode.JOIN);
        crit.setFetchMode("marca", FetchMode.JOIN);
        //Query query = sesion.createQuery("from PorcentajePrecioEntity where estado = :estado ");
        //query.setString("estado", estado);

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

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

/**
 * Funcion con la cual se realiza la consulta de parametros basandose en una
 * sede y una categoria como minimo/*from w ww  .  ja  v a 2s. co m*/
 *
 * @param estado
 * @param idSede
 * @param idCate
 * @param idRefe
 * @param idMarca
 * @return
 */
public List<PorcentajePrecioEntity> buscaPorcentajePrecioXFiltros(String estado, Integer idSede, Integer idCate,
        Integer idRefe, Integer idMarca) {
    List<PorcentajePrecioEntity> rta;
    try {
        initOperation();
        Criteria criteria = sesion.createCriteria(PorcentajePrecioEntity.class);
        criteria.setFetchMode("sede", FetchMode.JOIN);
        criteria.setFetchMode("categoria", FetchMode.JOIN);
        criteria.setFetchMode("referencia", FetchMode.JOIN);
        criteria.setFetchMode("marca", FetchMode.JOIN);
        criteria.add(Restrictions.eq("estado", estado));
        criteria.add(Restrictions.eq("sede.id", idSede));
        criteria.add(Restrictions.eq("categoria.id", idCate));
        if (!"-1".equalsIgnoreCase(idRefe.toString().trim())) {
            criteria.add(Restrictions.eq("referencia.id", idRefe));
        }
        if (!"-1".equalsIgnoreCase(idMarca.toString().trim())) {
            criteria.add(Restrictions.eq("marca.id", idMarca));
        }

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

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

/**
 * Funcion con la cual busco todas las cotizaciones generadas para un
 * cliente/* w ww. j  a v  a 2 s  .  c o m*/
 *
 * @param idCliente
 * @return
 */
public List<PedidoEntity> buscaCotizacionXCliente(Long idCliente) {
    List<PedidoEntity> rta = null;
    try {
        initOperation();
        Criteria crit = sesion.createCriteria(PedidoEntity.class);
        crit.createAlias("cliente", "cli").add(Restrictions.eq("cli.id", idCliente))
                .add(Restrictions.eq("estado", "CO"));
        crit.setFetchMode("cli", FetchMode.JOIN).setFetchMode("sede", FetchMode.JOIN);
        crit.setFetchMode("usuario", FetchMode.JOIN);
        crit.addOrder(Order.desc("id"));
        rta = crit.list();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rta;
}

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

/**
 * Funcion que consulta en la base de datos los proveedores activos
 *
 * @return/*from  w  w  w. j a  v  a2 s . co m*/
 */
public List<ProveedoresEntity> consultaProveedores() {
    List<ProveedoresEntity> respuesta = null;
    try {
        this.initOperation();
        Criteria crit = sesion.createCriteria(ProveedoresEntity.class);
        crit.add(Restrictions.eq("estado", "A"));
        crit.setFetchMode("retenciones", FetchMode.JOIN);
        crit.setFetchMode("municipio", FetchMode.JOIN);
        crit.setFetchMode("ciudad", FetchMode.JOIN);
        //crit.setFetchMode("", FetchMode.JOIN);
        respuesta = crit.list();

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