List of usage examples for org.hibernate.criterion Restrictions and
public static Conjunction and(Criterion... predicates)
From source file:searchServ.java
public static SystemUser gameExists(String gameName) { SessionFactory sf = HibernateUtil.getSessionFactory(); Session session = sf.openSession();//from w ww . ja v a 2 s . c om Criteria crit = session.createCriteria(WishListItem.class); Criterion cond1 = Restrictions.eq("title", gameName); crit.add(Restrictions.and(cond1)); return (SystemUser) crit.uniqueResult(); }
From source file:benedict.zhang.addon.persistence.PersistenceManager.java
public Sound loadSound(String soundName, String actor) { session = sessionFactory.openSession(); session.beginTransaction();/*from www .j a v a 2 s .c om*/ Criteria criteria = session.createCriteria(Sound.class); criteria.add(Restrictions.eq("soundName", soundName)); criteria.add(Restrictions.and(Restrictions.eq("actor", actor))); Sound sound = (Sound) criteria.uniqueResult(); session.getTransaction().commit(); session.close(); String path = UserPreference.getUserPreference().getSetting(UserPreferenceConstants.SOUND_LIBRARY) + sound.getActor() + System.getProperty("file.separator") + sound.getSoundName() + ".mp3"; sound.setSoundPath(path); return sound; }
From source file:br.com.webbudget.domain.model.repository.financial.MovementRepository.java
License:Open Source License
/** * * @param filter// www . j a v a 2 s. c om * @param pageRequest * @return */ @Override public Page<Movement> listByFilter(MovementFilter filter, PageRequest pageRequest) { final Criteria criteria = this.createCriteria(); final List<Criterion> criterions = new ArrayList<>(); criteria.createAlias("contact", "co", JoinType.LEFT_OUTER_JOIN); criteria.createAlias("apportionments", "ap"); criteria.createAlias("ap.movementClass", "mc"); criteria.createAlias("ap.costCenter", "cc"); criteria.createAlias("financialPeriod", "fp"); // montramos os criterios de filtragem geral if (filter.hasCriteria()) { criterions.add(Restrictions.eq("code", filter.getCriteria())); criterions.add(Restrictions.ilike("description", "%" + filter.getCriteria() + "%")); criterions.add(Restrictions.ilike("mc.name", "%" + filter.getCriteria() + "%")); criterions.add(Restrictions.ilike("cc.name", "%" + filter.getCriteria() + "%")); criterions.add(Restrictions.ilike("co.name", "%" + filter.getCriteria() + "%")); // se conseguir castar para bigdecimal trata como um filtro try { criterions.add(Restrictions.eq("value", filter.criteriaToBigDecimal())); } catch (ParseException ex) { } } criteria.add(Restrictions.or(criterions.toArray(new Criterion[] {}))); criteria.add(Restrictions.and(filter.getCustomFilters())); // projetamos para pegar o total de paginas possiveis criteria.setProjection(Projections.count("id")); final Long totalRows = (Long) criteria.uniqueResult(); // limpamos a projection para que a criteria seja reusada criteria.setProjection(null); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // paginamos criteria.setFirstResult(pageRequest.getFirstResult()); criteria.setMaxResults(pageRequest.getPageSize()); // aplica o multisort dos campos if (pageRequest.isMultiSort()) { pageRequest.getMultiSortFields().stream().forEach(field -> { if (field.getDirection() == SortDirection.ASC) { criteria.addOrder(Order.asc(field.getSortField())); } else if (field.getDirection() == SortDirection.DESC) { criteria.addOrder(Order.desc(field.getSortField())); } }); } else if (pageRequest.getSortDirection() == SortDirection.ASC) { criteria.addOrder(Order.asc(pageRequest.getSortField())); } else if (pageRequest.getSortDirection() == SortDirection.DESC) { criteria.addOrder(Order.desc(pageRequest.getSortField())); } // montamos o resultado paginado return new Page<>(criteria.list(), totalRows); }
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 ww .ja v a 2s . c o 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.reqweb.dao.DisciplinaDao.java
@Transactional(readOnly = true) public List<Disciplina> findByCurso(String termo, Curso curso) { try {//from w ww . j a va 2 s.c o m 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.RequerimentoDao.java
/** * find by dataCriacao interval/* ww w.java2s . c om*/ * * @param dateA * @param dateB * @param sortField * @param sortOrder * @return */ @Transactional(readOnly = true) public List<Requerimento> find(Date dateA, Date dateB, String sortField, String sortOrder) { try { Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Requerimento.class) .add(Restrictions.and(Restrictions.between("dataCriacao", dateA, dateB))); if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) { if (sortOrder.toLowerCase().equals("asc")) { criteria.addOrder(Property.forName(sortField).asc()); } if (sortOrder.toLowerCase().equals("desc")) { criteria.addOrder(Property.forName(sortField).desc()); } } return criteria.list(); } catch (HibernateException e) { System.out.println("query error: " + e.getMessage()); return new ArrayList<>(); } }
From source file:br.ufg.reqweb.dao.RequerimentoDao.java
/** * * @param login/*from w w w .j a v a2s .co m*/ * @param dateA * @param dateB * @param sortField * @param sortOrder * @return */ @Transactional(readOnly = true) public List<Requerimento> find(String login, Date dateA, Date dateB, String sortField, String sortOrder) { try { Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Requerimento.class) .createAlias("discente", "d").add(Restrictions.eq("d.login", login).ignoreCase()) .add(Restrictions.and(Restrictions.between("dataCriacao", dateA, dateB))); if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) { if (sortOrder.toLowerCase().equals("asc")) { criteria.addOrder(Property.forName(sortField).asc()); } if (sortOrder.toLowerCase().equals("desc")) { criteria.addOrder(Property.forName(sortField).desc()); } } return criteria.list(); } catch (HibernateException e) { System.out.println("query error: " + e.getMessage()); return new ArrayList<>(); } }
From source file:br.ufg.reqweb.dao.RequerimentoDao.java
@Transactional(readOnly = true) public List<Requerimento> find(String sortField, String sortOrder, Map<String, Object> filters) { if (filters == null) { filters = new HashMap(); }// w ww .ja v a 2 s .c o m try { Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Requerimento.class); for (String field : filters.keySet()) { /** * login eq / tipoRequerimento eq / termo like / dataCriacao * between */ if (field.equals("login")) { criteria.createAlias("discente", "d"); criteria.add(Restrictions.and(Restrictions.eq("d.login", filters.get(field)))); } if (field.equals("turmas")) { criteria.createAlias("itemRequerimentoList", "i"); List<Turma> turmas = (List<Turma>) filters.get(field); criteria.add(Restrictions.and(Restrictions.in("i.turma", turmas))); } if (field.equals("tipoRequerimento")) { criteria.add(Restrictions.and(Restrictions.eq(field, filters.get(field)))); } if (field.equals("termo")) { criteria.createAlias("discente", "d"); criteria.add(Restrictions.or(Restrictions.eq("d.matricula", filters.get("termo")), Restrictions .like("d.nome", filters.get("termo").toString(), MatchMode.ANYWHERE).ignoreCase())); } if (field.equals("curso")) { criteria.createAlias("discente.perfilList", "p"); criteria.add(Restrictions.and(Restrictions.eq("p.curso", filters.get(field)))); } if (field.equals("dataCriacao")) { Date[] arrayDate = (Date[]) filters.get("dataCriacao"); criteria.add(Restrictions.and(Restrictions.between("dataCriacao", arrayDate[0], arrayDate[1]))); } } if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) { if (sortOrder.toLowerCase().equals("asc")) { criteria.addOrder(Property.forName(sortField).asc()); } if (sortOrder.toLowerCase().equals("desc")) { criteria.addOrder(Property.forName(sortField).desc()); } } criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return criteria.list(); } catch (HibernateException e) { System.out.println("query error: " + e.getMessage()); return new ArrayList<>(); } }
From source file:br.ufg.reqweb.dao.TurmaDao.java
@Transactional(readOnly = true) public List<Turma> find(String termo, Curso curso, boolean periodoAtivo) { try {/*ww w . j av a 2s. c o m*/ Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Turma.class); if (periodoAtivo) { criteria.createAlias("periodo", "p").add(Restrictions.eq("p.ativo", periodoAtivo)); } if (termo != null && !termo.isEmpty()) { criteria.createAlias("disciplina", "d") .add(Restrictions.like("d.nome", termo.toUpperCase(), MatchMode.ANYWHERE)); } if (curso != null) { criteria.add(Restrictions.and(Restrictions.eq("d.curso", curso))); } criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return criteria.list(); } catch (HibernateException | NumberFormatException e) { System.out.println("query error: " + e.getMessage()); return new ArrayList<>(); } }
From source file:br.ufg.reqweb.dao.TurmaDao.java
@Transactional(readOnly = true) public List<Turma> find(int firstResult, int maxResult, String sortField, String sortOrder, Map<String, Object> filters) { if (filters == null) { filters = new HashMap(); }//from www . j ava 2 s. c o m try { Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Turma.class); criteria.createAlias("disciplina", "d"); for (String field : filters.keySet()) { if (field.equals("termo")) { criteria.add(Restrictions.and(Restrictions .like("d.nome", filters.get(field).toString(), MatchMode.ANYWHERE).ignoreCase())); } if (field.equals("periodo")) { criteria.add(Restrictions.and(Restrictions.eq("periodo", filters.get(field)))); } if (field.equals("curso")) { criteria.add(Restrictions.and(Restrictions.eq("d.curso", filters.get(field)))); } } if ((sortField != null && !sortField.isEmpty()) && (sortOrder != null && !sortOrder.isEmpty())) { System.out.format("sorted by: %s, ordering %s\n", sortField, sortOrder); if (sortOrder.toLowerCase().equals("asc")) { criteria.addOrder(Property.forName(sortField).asc()); } if (sortOrder.toLowerCase().equals("desc")) { criteria.addOrder(Property.forName(sortField).desc()); } } criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return criteria.list(); } catch (HibernateException e) { System.out.println("query error: " + e.getMessage()); return new ArrayList<>(); } }