Example usage for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY

List of usage examples for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY

Introduction

In this page you can find the example usage for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY.

Prototype

ResultTransformer DISTINCT_ROOT_ENTITY

To view the source code for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY.

Click Source Link

Document

Each row of results is a distinct instance of the root entity

Usage

From source file:com.apress.progwt.server.dao.hibernate.UserDAOHibernateImpl.java

License:Apache License

/**
 * add all fetch mode concerns to the critera. without
 * DISTINCT_ROOT_ENTITY these fetches will create multiple rows
 * /*from www  .j  a  v a  2s .c  o  m*/
 * If we join both schoolRankings & processTypes, we'll get duplicates
 * again. Fetch one of the collections with a SELECT and initialize
 * instead. Test in UserServiceImpl.testFetch()
 * 
 * Same with the process of each schoolRanking. Note, this is N+1
 * selects.
 * 
 * @param crit
 * @return
 */
private User fetchAllUser(DetachedCriteria crit) {
    crit.setFetchMode("schoolRankings", FetchMode.JOIN).setFetchMode("schoolRankings.school", FetchMode.JOIN)
            .setFetchMode("schoolRankings.process", FetchMode.SELECT)
            .setFetchMode("processTypes", FetchMode.SELECT)
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    User rtn = (User) DataAccessUtils.uniqueResult(getHibernateTemplate().findByCriteria(crit));
    Hibernate.initialize(rtn.getProcessTypes());
    Hibernate.initialize(rtn.getRatingTypes());
    for (Application application : rtn.getSchoolRankings()) {
        Hibernate.initialize(application.getProcess());
        Hibernate.initialize(application.getRatings());
    }

    log.debug("fetched user: " + rtn.getNickname() + " ratings " + rtn.getRatingTypes().size());

    // Hibernate.initialize(rtn.getSchoolRankings());
    return rtn;

}

From source file:com.cfs.controller.AuthoritiesDAO.java

public List<Authorities> listaAuthorities() throws Exception {
    List<Authorities> lista = null;
    try {/*from w  w  w  .  j  a v  a2  s  . c  o m*/
        session = HibernateUtil.getSessionFactory().openSession();
        Criteria criteria = session.createCriteria(Authorities.class);
        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        lista = criteria.list();
        //System.out.println(Utilities.getInstance().getLineNumber() + "RESULTADO DO PRIMEIRO - "+lista.get(1).getAuthority());
    } catch (Exception e) {
        throw new Exception(e.getMessage());
    } finally {
        session.close();
    }
    return lista;
}

From source file:com.cfs.controller.AuthoritiesDAO.java

public Authorities buscaAuthorities(String authority) throws Exception {
    Authorities retorno = null;//www  .  ja v  a 2s  . c o  m
    try {
        session = HibernateUtil.getSessionFactory().openSession();
        Criteria criteria = session.createCriteria(Authorities.class);
        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        criteria.add(Restrictions.like("authority", authority));
        if (criteria.list().size() > 1) {
            System.out.println(Utilities.getInstance().getLineNumber() + "[buscaAuthorities (" + authority
                    + ")][ERRO] criteria.list().size() = " + criteria.list().size());
        }
        retorno = (Authorities) criteria.uniqueResult();
    } catch (Exception e) {
        throw new Exception(e.getMessage());
    } finally {
        session.close();
    }
    return retorno;
}

From source file:com.cfs.controller.UsersDAO.java

public List<Users> listaUsers() throws Exception {
    List<Users> lista = null;
    try {/*  www. j a  va  2 s. c  o  m*/
        session = HibernateUtil.getSessionFactory().openSession();
        Criteria criteria = session.createCriteria(Users.class);
        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        lista = criteria.list();
        //System.out.println(Utilities.getInstance().getLineNumber()+"RESULTADO DO PRIMEIRO"+lista.get(0).getDescricao());
    } catch (Exception e) {
        throw new Exception(e.getMessage());
    } finally {
        session.close();
    }
    return lista;
}

From source file:com.cfs.controller.UsersDAO.java

public Users buscaUsuarioPorUSERNAME(String username) {
    usuario = null;//from  ww  w.j  ava  2s .  com
    try {
        session = HibernateUtil.getSessionFactory().openSession();
        Criteria criteria = session.createCriteria(Users.class);
        criteria.add(Restrictions.eq("username", username));
        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        usuario = (Users) criteria.uniqueResult();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        session.close();
    }
    return usuario;
}

From source file:com.cmweb.orm.hibernate.SimpleHibernateDao.java

License:Apache License

public Query distinct(Query query) {
    query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return query;
}

From source file:com.cmweb.orm.hibernate.SimpleHibernateDao.java

License:Apache License

public Criteria distinct(Criteria criteria) {
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return criteria;
}

From source file:com.cristian.tareask.daoImpl.EmailConversationDaoImpl.java

@Override
public List getAllEmailConversations(int idUser) {
    s = HibernateUtil.getSessionFactory().openSession();
    Criteria c = s.createCriteria(EmailConversation.class).createAlias("emailMessage", "message")
            .createAlias("message.messageReceptors", "receptor").createAlias("receptor.user", "user")
            .createAlias("message.user", "userid")
            //parte experimental
            .add(Restrictions.or(Restrictions.eq("userid.id", idUser), Restrictions.eq("user.id", idUser)))
            //.add(Restrictions.eq("userid.id", 2))
            //.add(Restrictions.eq("user.id",2))
            // fin parte experimental
            .addOrder(Order.desc("message.date"))
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return c.list();
}

From source file:com.eryansky.common.orm.core.hibernate.support.BasicHibernateDao.java

License:Apache License

/**
 * Querydistinct transformer,????distinct?
 * //www. j av a  2 s . co  m
 * @param queryOrNamedQuery hql HibernateNamedQuery
 * @param values 
 * 
 * @return List
 */
public <X> List<X> distinct(String queryOrNamedQuery, Object... values) {
    Query query = createQuery(queryOrNamedQuery, values);
    query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    List<X> result = query.list();

    if (CollectionUtils.isEmpty(result) || result.get(0) == null) {
        return Lists.newArrayList();
    }

    return result;
}

From source file:com.eryansky.common.orm.core.hibernate.support.BasicHibernateDao.java

License:Apache License

/**
 * Querydistinct transformer,????distinct?
 * //from  w w  w .ja v  a2 s  .  c  o m
 * @param queryOrNamedQuery hql HibernateNamedQuery
 * @param values 
 * 
 * @return List
 */
public <X> List<X> distinct(String queryOrNamedQuery, Map<String, Object> values) {
    Query query = createQuery(queryOrNamedQuery, values);
    query.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    List<X> result = query.list();

    if (CollectionUtils.isEmpty(result) || result.get(0) == null) {
        return Lists.newArrayList();
    }

    return result;
}