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:at.ac.tuwien.ifs.tita.dao.user.UserDAO.java

License:Apache License

/** {@inheritDoc} **/
@Override//from  w  ww . j  av  a 2 s  .  co  m
@SuppressWarnings("unchecked")
public List<TiTAUser> findUsersOrdered(int maxResult) throws PersistenceException {
    Criteria crit = getSession().createCriteria(TiTAUser.class);

    if (maxResult > 0) {
        crit.setMaxResults(maxResult);
    }

    crit.addOrder(Order.asc("userName"));
    crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    return crit.list();
}

From source file:au.edu.uts.eng.remotelabs.schedserver.permissions.pages.UsersPage.java

License:Open Source License

/**
 * Gets a list of users with a specific search term. The users may be 
 * excluded from a specific class. //  w  ww.  ja  v a2  s  . c om
 * 
 * @param request
 * @return response
 * @throws Exception
 */
@SuppressWarnings("unchecked")
public JSONArray list(HttpServletRequest request) throws JSONException {
    JSONArray arr = new JSONArray();

    Criteria qu = this.db.createCriteria(User.class);

    String search = request.getParameter("search");
    if (search != null) {
        /* Search filter. */
        qu.add(Restrictions.disjunction().add(Restrictions.like("name", search, MatchMode.ANYWHERE))
                .add(Restrictions.like("firstName", search, MatchMode.ANYWHERE))
                .add(Restrictions.like("lastName", search, MatchMode.ANYWHERE)));
    }

    if (request.getParameter("max") != null) {
        /* Max results. */
        qu.setMaxResults(Integer.parseInt(request.getParameter("max")));
    }

    if (request.getParameter("in") != null) {
        /* Users in class. */
        UserClass inClass = new UserClassDao(this.db).findByName(request.getParameter("in"));
        if (inClass == null) {
            this.logger.warn("Not going to add in class as a user list restriction because the class '"
                    + request.getParameter("in") + "' was not found.");
        } else {
            qu.createCriteria("userAssociations").add(Restrictions.eq("userClass", inClass));
        }
    }

    if (request.getParameter("notIn") != null) {
        /* Users not in class. */
        UserClass notInClass = new UserClassDao(this.db).findByName(request.getParameter("notIn"));
        if (notInClass == null) {
            this.logger.warn("Not going to add not in class as a user list restriction because the class '"
                    + request.getParameter("notIn") + "' was not found.");
        } else {
            DetachedCriteria subQu = DetachedCriteria.forClass(User.class)
                    .setProjection(Property.forName("name")).createCriteria("userAssociations")
                    .add(Restrictions.eq("userClass", notInClass));

            List<String> names = subQu.getExecutableCriteria(this.db).list();
            if (names.size() > 0) {
                qu.add(Restrictions.not(Restrictions.in("name", names)));
            }
        }
    }

    qu.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    qu.addOrder(Order.asc("lastName"));
    qu.addOrder(Order.asc("name"));

    for (User user : (List<User>) qu.list()) {
        JSONObject uo = new JSONObject();
        uo.put("name", user.getNamespace() + "-_-" + user.getName());

        if (user.getFirstName() == null || user.getLastName() == null) {
            uo.put("display", user.getName());
        } else {
            uo.put("display", user.getLastName() + ", " + user.getFirstName());
        }

        arr.put(uo);
    }

    return arr;
}

From source file:br.al.contractmanager.dao.UsuarioDao.java

@Transactional(readOnly = true)
public List<Usuario> buscar(String termo) {
    Session session = sessionFactory.getCurrentSession();
    return session.createCriteria(Usuario.class)
            .add(Restrictions.or(Restrictions.eq("matricula", termo),
                    Restrictions.like("nomeUsuario", termo, MatchMode.ANYWHERE).ignoreCase(),
                    Restrictions.like("nomeCompleto", termo, MatchMode.ANYWHERE).ignoreCase()))
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list();
}

From source file:br.com.fatecmogidascruzes.saph.dao.AlternativeDAO.java

@Override
public List<Alternative> getAlternativesByKnowledgeArea(KnowledgeArea kArea) {

    session = HSession.getSession();//w w  w.  j a  va 2s  .com
    String hql = " SELECT alt FROM Alternative alt inner join alt.evaluatedItems ev inner join ev.ability.knowledgeAreas ka WHERE :kAreaId = ka.id";
    Query q = session.createQuery(hql);
    q.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    q.setParameter("kAreaId", kArea.getId());

    List entities = q.list();
    session.close();
    return entities;

}

From source file:br.ufg.calendario.dao.EventoDao.java

@Transactional(readOnly = true)
public List<Evento> listar(int first, int pageSize, String sortField, String sortOrder,
        Map<String, Object> filters) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Evento.class);
    criteria.setFirstResult(first);/*  ww  w.j a  v  a  2 s  . c o m*/
    criteria.setMaxResults(pageSize);

    if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) {
        if (sortOrder.equals("ASCENDING")) {
            criteria.addOrder(Order.asc(sortField));
        }
        if (sortOrder.equals("DESCENDING")) {
            criteria.addOrder(Order.desc(sortField));
        }
    } else {
        criteria.addOrder(Order.asc("id"));
    }
    if (filters != null && !filters.isEmpty()) {
        for (String key : filters.keySet()) {
            if (key.equals("termo")) {
                List foundList = buscarTermo(session, filters.get("termo").toString());
                if (foundList.size() > 0) {
                    criteria.add(Restrictions.in("id", foundList));
                } else {
                    criteria.add(Restrictions.or(
                            Restrictions.like("assunto", filters.get(key).toString(), MatchMode.ANYWHERE)
                                    .ignoreCase(),
                            Restrictions.like("descricao", filters.get(key).toString(), MatchMode.ANYWHERE)
                                    .ignoreCase()));
                }
            }

            if (key.equals("interessado")) {
                Interessado interessado = (Interessado) filters.get(key);
                System.out.println("interessado: " + interessado.getNome());
                criteria.createCriteria("interessado").add(Restrictions.eq("id", interessado.getId()));
            }

            if (key.equals("regional")) {
                Regional regional = (Regional) filters.get(key);
                System.out.println("regional: " + regional.getNome());
                criteria.createCriteria("regional").add(Restrictions.eq("id", regional.getId()));
            }

            if (key.equals("periodo")) {
                Map periodo = (Map) filters.get(key);
                criteria.add(Restrictions
                        .or(Restrictions.between("inicio", periodo.get("inicio"), periodo.get("termino")))
                        .add(Restrictions.between("termino", periodo.get("inicio"), periodo.get("termino"))));
            }

            if (key.equals("calendario")) {
                criteria.createAlias("calendario", "c");
                criteria.add(Restrictions.eq("c.ano", ((Calendario) filters.get(key)).getAno()));
            }

        }
    }
    if (filters == null || !filters.containsKey("calendario")) {
        criteria.createAlias("calendario", "c");
        criteria.add(Restrictions.eq("c.ativo", true));
    }
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    List<Evento> resultado = criteria.list();
    for (Evento evt : resultado) {
        Hibernate.initialize(evt.getInteressado());
        Hibernate.initialize(evt.getRegional());
    }
    return resultado;
}

From source file:br.ufg.calendario.dao.InteressadoDao.java

@Transactional(readOnly = true)
public List<Interessado> listar(String termo) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Interessado.class);
    criteria.add(Restrictions.or(Restrictions.like("sigla", termo, MatchMode.ANYWHERE).ignoreCase(),
            Restrictions.like("nome", termo, MatchMode.ANYWHERE).ignoreCase()))
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}

From source file:br.ufg.calendario.dao.RegionalDao.java

@Transactional(readOnly = true)
public List<Regional> listar(String termo) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Regional.class);
    criteria.add(Restrictions.like("nome", termo, MatchMode.ANYWHERE).ignoreCase())
            .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}

From source file:br.ufg.calendario.dao.UsuarioDao.java

@Transactional(readOnly = true)
public Usuario buscarPorLogin(String login) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Usuario.class);
    criteria.add(Restrictions.eq("login", login));
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    Usuario usuario = (Usuario) criteria.uniqueResult();
    if (usuario != null) {
        Hibernate.initialize(usuario.getPerfil());
    }//from   w  w w  .j  a va  2s.  c  o m
    return usuario;
}

From source file:br.ufg.calendario.dao.UsuarioDao.java

@Transactional(readOnly = true)
public List<Usuario> listar() {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Usuario.class);
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    return criteria.list();
}

From source file:br.ufg.calendario.dao.UsuarioDao.java

@Transactional(readOnly = true)
public List<Usuario> listar(int first, int pageSize, String sortField, String sortOrder,
        Map<String, Object> filters) {
    Session session = sessionFactory.getCurrentSession();
    Criteria criteria = session.createCriteria(Usuario.class);
    criteria.setFirstResult(first);//from   w  w w  . j a v  a  2s.co  m
    criteria.setMaxResults(pageSize);
    if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) {
        if (sortOrder.equals("ASCENDING")) {
            criteria.addOrder(Order.asc(sortField));
        }
        if (sortOrder.equals("DESCENDING")) {
            criteria.addOrder(Order.desc(sortField));
        }
    } else {
        criteria.addOrder(Order.asc("id"));
    }
    if (filters != null && !filters.isEmpty()) {
        for (String key : filters.keySet()) {
            if (key.equals("termo")) {
                criteria.add(Restrictions.or(
                        Restrictions.like("nome", filters.get(key).toString(), MatchMode.ANYWHERE).ignoreCase(),
                        Restrictions.like("login", filters.get(key).toString(), MatchMode.ANYWHERE)
                                .ignoreCase()));
            }

            if (key.equals("perfil")) {
                PerfilEnum p = (PerfilEnum) filters.get(key);
                criteria.add(Restrictions.eq("perfil", p));
            }

        }
    }
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    List<Usuario> resultado = criteria.list();
    for (Usuario u : resultado) {
        Hibernate.initialize(u.getPerfil());
    }
    return resultado;
}