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.reqweb.dao.IndicePrioridadeDao.java
@Transactional(readOnly = true) public List<IndicePrioridade> find(String termo) { try {//from w w w .j a va2s. co m return this.sessionFactory.getCurrentSession().createCriteria(IndicePrioridade.class) .createAlias("discente", "d") .add(Restrictions.or(Restrictions.eq("d.matricula", termo), Restrictions.like("d.nome", termo, MatchMode.ANYWHERE).ignoreCase())) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list(); } catch (HibernateException e) { System.out.println("query error: " + e.getMessage()); return new ArrayList<>(); } }
From source file:br.ufg.reqweb.dao.RequerimentoDao.java
/** * find by discente nome/* w w w.j a v a 2 s .co m*/ * * @param termo * @param sortField * @param sortOrder * @return */ @Transactional(readOnly = true) public List<Requerimento> find(String termo, String sortField, String sortOrder) { try { List<Requerimento> requerimentos; Criteria criteria = this.sessionFactory.getCurrentSession().createCriteria(Requerimento.class) .createAlias("discente", "d").add(Restrictions.or(Restrictions.eq("d.matricula", termo), Restrictions.like("d.nome", termo, MatchMode.ANYWHERE).ignoreCase())); 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.RequerimentoDao.java
@Transactional(readOnly = true) public List<Requerimento> find(String sortField, String sortOrder, Map<String, Object> filters) { if (filters == null) { filters = new HashMap(); }/*w w w. jav a 2 s .co 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) { try {/*ww w . j a va 2s .c o m*/ List<Turma> turmas = this.sessionFactory.getCurrentSession().createCriteria(Turma.class) .createAlias("disciplina", "d") .add(Restrictions.like("d.nome", termo, MatchMode.ANYWHERE).ignoreCase()) //.createQuery("SELECT t FROM Turma t JOIN t.disciplina d where d.nome LIKE :termo") //.setParameter("termo", "%" + termo.toUpperCase() + "%") .list(); return turmas; } 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(String termo, Periodo periodo) { try {//from w ww . j a v a 2 s . c om List<Turma> turmas; if (termo.isEmpty()) { turmas = this.sessionFactory.getCurrentSession() .createQuery("FROM Turma t WHERE t.periodo.id = :periodoId") .setParameter("periodoId", periodo.getId()).list(); } else { turmas = this.sessionFactory.getCurrentSession().createCriteria(Turma.class) .createAlias("disciplina", "d") .add(Restrictions.like("d.nome", termo.toUpperCase(), MatchMode.ANYWHERE)) .add(Restrictions.eq("periodo.id", periodo.getId())).list(); } return turmas; } 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(String termo, Curso curso, boolean periodoAtivo) { try {//from ww w.jav 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 w w w. j a v a 2s. co 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<>(); } }
From source file:br.ufg.reqweb.dao.TurmaDao.java
@Transactional(readOnly = true) public int count(Map<String, Object> filters) { if (filters == null) { filters = new HashMap(); }//from w w w. j a v a2 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)))); } } criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return ((Long) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); } catch (HibernateException e) { System.out.println("query error: " + e.getMessage()); return 0; } }
From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java
License:Open Source License
@Override public PagingLoadResult<Loan> getLoans(PagingLoadConfig configs) throws PigeException { PermissionHelper.checkLoanManagementPermission(getThreadLocalRequest()); logger.debug("Rcupration des emprunts " + "[Pagination: dpart=" + configs.getOffset() + ", max=" + configs.getLimit() + "] ..."); Transaction tx = null;//from www .jav a2 s.c om List<Loan> loans = null; Session session = null; Integer loanCount = 0; Integer offset = 0; Integer limit = 0; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); Date startDate = null; Date endDate = null; Criteria loansCriteria = session.createCriteria(Loan.class); Criteria usersCriteria = null; List<FilterConfig> searchConfigs = configs.get(PIGE.SEARCH_CONFIGS); List<FilterConfig> filterConfigs = configs.get(PIGE.FILTER_CONFIGS); List<FilterConfig> userParam = null; List<FilterConfig> loanParam = null; if (searchConfigs != null) { for (FilterConfig fc : searchConfigs) { if (fc.getField().equals("params")) { logger.debug("Extraction du FilterConfig 'params'..."); BaseListFilterConfig blfc = (BaseListFilterConfig) fc; userParam = blfc.get(PIGE.USER_CONFIGS); logger.debug("Extraction de la liste 'user-param'..." + (userParam == null ? "N/D" : "OK")); loanParam = blfc.get(PIGE.LOAN_CONFIGS); logger.debug("Extraction de la liste 'loan-param'..." + (loanParam == null ? "N/D" : "OK")); break; } } } Criterion filterCriterion = null; Iterator<FilterConfig> itr = null; FilterConfig fc = null; if (loanParam != null) { itr = loanParam.iterator(); while (itr.hasNext()) { fc = itr.next(); if (fc instanceof BaseDateFilterConfig) { BaseDateFilterConfig dateFC = (BaseDateFilterConfig) fc; startDate = dateFC.get(PIGE.START_DATE, null); endDate = dateFC.get(PIGE.END_DATE, null); itr.remove(); break; } } FilterConfig matchModeConfig = new BaseBooleanFilterConfig(); matchModeConfig.setField(PIGE.MATCH_MODE); matchModeConfig.setValue(Boolean.FALSE); loanParam.add(matchModeConfig); filterCriterion = PigeHibernateUtil.buildFilterCriterion(loanParam); if (filterCriterion != null) { loansCriteria.add(filterCriterion); } if (startDate != null) { logger.debug("Restrictions sur la date d'chance: entre " + startDate.toString() + " et " + (endDate == null ? new Date() : endDate) + " inclusivement..."); loansCriteria.add(Restrictions.between(Loan.START_DATE_REF, startDate, (endDate == null ? new Date() : endDate))); } else if (endDate != null) { logger.debug("Restrictions sur la date d'chance: <= " + endDate.toString()); loansCriteria.add(Restrictions.le(Loan.START_DATE_REF, endDate)); } } if (filterConfigs != null && filterConfigs.size() > 0) { filterCriterion = PigeHibernateUtil.buildFilterCriterion(filterConfigs); if (filterCriterion != null) { loansCriteria.add(filterCriterion); } } usersCriteria = loansCriteria.createCriteria(Loan.USER_REF, "usr", Criteria.LEFT_JOIN); if (userParam != null) { String userScope = null; itr = userParam.iterator(); while (itr.hasNext()) { fc = itr.next(); if (fc.getField().equals("scope")) { userScope = (String) fc.getValue(); itr.remove(); break; } } if (userScope != null && !userScope.isEmpty() && !userScope.equals("*")) { logger.debug( "Restriction de la recherche sur un usager " + "spcifique: [" + userScope + "] ..."); usersCriteria.add(Restrictions.like(User.IDENTIFIER_REF, userScope, MatchMode.EXACT)); } else { logger.debug("Restriction de la recherche sur un ou des " + "usager spcifique..."); filterCriterion = PigeHibernateUtil.buildFilterCriterion(userParam); if (filterCriterion != null) { usersCriteria.add(filterCriterion); } } } loanCount = (Integer) loansCriteria.setProjection(Projections.rowCount()).uniqueResult(); offset = configs.getOffset(); limit = loanCount; if (limit > 0 && configs.getLimit() > 0) { limit = Math.min(configs.getLimit(), limit); } logger.debug("Paramtres d'extraction des donnes: dpart=" + offset + ", max=" + limit + "] ..."); loansCriteria.setProjection(null); loansCriteria.setResultTransformer(Criteria.ROOT_ENTITY); loans = (List) loansCriteria.addOrder(Order.asc("usr." + User.LOAN_NO_REF)).setFirstResult(offset) .setMaxResults(limit).list(); tx.commit(); logger.debug("Rcupration russie!"); } catch (Exception hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } if (loans == null) { loans = new ArrayList(); } return new BasePagingLoadResult(loans, offset, loanCount); }
From source file:ca.qc.cegepoutaouais.tge.pige.server.ManagementServiceImpl.java
License:Open Source License
@Override public List<Category> getCategories(Category parent, Boolean includeUnclassified) throws PigeException { logger.debug("Rcupration des catgories..."); Transaction tx = null;/*from w ww . j av a 2 s . c o m*/ List<Category> categories = null; Session session = null; try { session = PigeHibernateUtil.openSession(); tx = session.beginTransaction(); Criteria criteria = session.createCriteria(Category.class); if (parent != null) { logger.debug("category != null: " + parent.getName()); criteria.add(Restrictions.eq(Category.PARENT_REF, parent)); } else { criteria.add(Restrictions.isNull(Category.PARENT_REF)); } criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); categories = (List) criteria.addOrder(Order.asc(Category.NAME_REF)).list(); if (categories != null) { for (Category c : categories) { Criteria itemCrit = session.createCriteria(Item.class); itemCrit.createCriteria(Item.CATEGORIES_REF) .add(Restrictions.like(Category.PATH_REF, c.getPath(), MatchMode.START)); itemCrit.setProjection(Projections.distinct(Projections.rowCount())); c.setItemCount((Integer) itemCrit.uniqueResult()); } } // la racine seulement. if (includeUnclassified && parent == null) { Category unclassified = new Category(); unclassified.setId(Category.UNCLASSIFIED_CATEGORY_ID); Criteria itemCrit = session.createCriteria(Item.class); itemCrit.add(Restrictions.sizeEq(Item.CATEGORIES_REF, 0)); itemCrit.setProjection(Projections.distinct(Projections.rowCount())); unclassified.setItemCount((Integer) itemCrit.uniqueResult()); categories.add(unclassified); } tx.commit(); logger.debug("Rcupration russie!"); } catch (Exception hex) { logger.error(hex); if (tx != null) { tx.rollback(); } } finally { if (session != null) { session.close(); } } return categories; }