List of usage examples for org.hibernate.criterion Restrictions like
public static SimpleExpression like(String propertyName, String value, MatchMode matchMode)
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);//from w w w. j a v a2 s. c om 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.EventoDao.java
@Transactional(readOnly = true) public int rowCount(Map<String, Object> filters) { Session session = sessionFactory.getCurrentSession(); Criteria criteria = session.createCriteria(Evento.class); for (String key : filters.keySet()) { if (key.equals("assunto")) { criteria.add(Restrictions.like(key, filters.get(key).toString(), MatchMode.ANYWHERE).ignoreCase()); }//from w w w . j a v a 2s . co m if (key.equals("periodo")) { Map periodo = (Map) filters.get(key); criteria.add(Restrictions.and(Restrictions.ge("inicio", periodo.get("inicio"))) .add(Restrictions.le("termino", periodo.get("termino")))); } if (key.equals("calendario")) { criteria.createAlias("calendario", "c"); criteria.add(Restrictions.eq("c.ano", ((Calendario) filters.get(key)).getAno())); } if (key.equals("termo")) { 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")) { System.out.println("implementar filtro interessado"); } if (key.equals("regional")) { System.out.println("implementar filtro regional"); } } return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); }
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.InteressadoDao.java
@Transactional(readOnly = true) public int rowCount(String termo) { Session session = sessionFactory.getCurrentSession(); Criteria criteria = session.createCriteria(Interessado.class); if (termo != null && !termo.isEmpty()) { criteria.add(Restrictions.or(Restrictions.like("sigla", termo.trim(), MatchMode.ANYWHERE).ignoreCase(), Restrictions.like("nome", termo.trim(), MatchMode.ANYWHERE).ignoreCase())); }/*from ww w . jav a 2 s .c om*/ return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); }
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.RegionalDao.java
@Transactional(readOnly = true) public int rowCount(String termo) { Session session = sessionFactory.getCurrentSession(); Criteria criteria = session.createCriteria(Regional.class); if (termo != null && !termo.isEmpty()) { criteria.add(Restrictions.like("nome", termo.trim(), MatchMode.ANYWHERE).ignoreCase()); }/* w w w. j ava2 s . c om*/ return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); }
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);/* ww w . j a v a 2 s. c om*/ 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; }
From source file:br.ufg.calendario.dao.UsuarioDao.java
@Transactional(readOnly = true) public int rowCount(Map<String, Object> filters) { Session session = sessionFactory.getCurrentSession(); Criteria criteria = session.createCriteria(Usuario.class); for (String key : filters.keySet()) { if (key.equals("nome")) { criteria.add(// ww w. j a va 2 s .c o m Restrictions.like("nome", filters.get(key).toString(), MatchMode.ANYWHERE).ignoreCase()); } if (key.equals("login")) { criteria.add( 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)); } } return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); }
From source file:br.ufg.reqweb.dao.DisciplinaDao.java
@Transactional(readOnly = true) public List<Disciplina> findByCurso(String termo, Curso curso) { try {//from w ww. j a v a 2 s . c om Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Disciplina.class); if (!termo.isEmpty()) { criteria.add(Restrictions.and((Restrictions.like("nome", termo, MatchMode.ANYWHERE).ignoreCase()))); } if (curso != null) { criteria.add(Restrictions.and(Restrictions.eq("curso", curso))); } return criteria.list(); } catch (HibernateException | NumberFormatException e) { System.out.println("query error: " + e.getMessage()); return new ArrayList<>(); } }
From source file:br.ufg.reqweb.dao.DisciplinaDao.java
@Transactional(readOnly = true) public List<Disciplina> find(String termo) { try {/*w w w.j a v a 2 s . c om*/ List<Disciplina> disciplinas = this.sessionFactory.getCurrentSession().createCriteria(Disciplina.class) .add(Restrictions.like("nome", termo, MatchMode.ANYWHERE).ignoreCase()).list(); return disciplinas; } catch (HibernateException | NumberFormatException e) { System.out.println("query error: " + e.getMessage()); return new ArrayList<>(); } }