List of usage examples for org.hibernate.criterion DetachedCriteria getExecutableCriteria
public Criteria getExecutableCriteria(Session session)
From source file:$.AbstractHibernateDaoImpl.java
License:Apache License
@SuppressWarnings("unchecked") public T getUniqueResultByCriteria(DetachedCriteria criteria) { return (T) criteria.getExecutableCriteria(getSession()).uniqueResult(); }/*ww w . ja v a 2s . c om*/
From source file:$.GenericDaoImpl.java
License:Apache License
public Object getUniqueResultByCriteria(DetachedCriteria criteria) { return criteria.getExecutableCriteria(getSession()).uniqueResult(); }
From source file:apm.common.core.DaoImpl.java
License:Open Source License
/** * /*from ww w . j av a2s . c o m*/ * @param page * @param detachedCriteria * @param resultTransformer * @return */ @SuppressWarnings("unchecked") public Page<T> find(Page<T> page, DetachedCriteria detachedCriteria, ResultTransformer resultTransformer) { // get count if (!page.isDisabled() && !page.isNotCount()) { page.setCount(count(detachedCriteria)); if (page.getCount() < 1) { return page; } } Criteria criteria = detachedCriteria.getExecutableCriteria(getSession()); criteria.setResultTransformer(resultTransformer); // set page if (!page.isDisabled()) { criteria.setFirstResult(page.getFirstResult()); criteria.setMaxResults(page.getMaxResults()); } // order by if (StringUtils.isNotBlank(page.getOrderBy())) { for (String order : StringUtils.split(page.getOrderBy(), ",")) { String[] o = StringUtils.split(order, " "); if (o.length == 1) { criteria.addOrder(Order.asc(o[0])); } else if (o.length == 2) { if ("DESC".equals(o[1].toUpperCase())) { criteria.addOrder(Order.desc(o[0])); } else { criteria.addOrder(Order.asc(o[0])); } } } } page.setList(criteria.list()); return page; }
From source file:apm.common.core.DaoImpl.java
License:Open Source License
/** * /*from w w w .j a v a 2s. c o m*/ * @param detachedCriteria * @param resultTransformer * @return */ @SuppressWarnings("unchecked") public List<T> find(DetachedCriteria detachedCriteria, ResultTransformer resultTransformer) { Criteria criteria = detachedCriteria.getExecutableCriteria(getSession()); criteria.setResultTransformer(resultTransformer); return criteria.list(); }
From source file:apm.common.core.DaoImpl.java
License:Open Source License
/** * //from w ww .j av a 2 s . co m * @param detachedCriteria * @return */ @SuppressWarnings("rawtypes") public long count(DetachedCriteria detachedCriteria) { Criteria criteria = detachedCriteria.getExecutableCriteria(getSession()); long totalCount = 0; try { // Get orders Field field = CriteriaImpl.class.getDeclaredField("orderEntries"); field.setAccessible(true); List orderEntrys = (List) field.get(criteria); // Remove orders field.set(criteria, new ArrayList()); // Get count criteria.setProjection(Projections.rowCount()); totalCount = Long.valueOf(criteria.uniqueResult().toString()); // Clean count criteria.setProjection(null); // Restore orders field.set(criteria, orderEntrys); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return totalCount; }
From source file:ar.com.zauber.commons.repository.SpringHibernateRepository.java
License:Apache License
/** @see Repository#find(Query) */ @SuppressWarnings("unchecked") public final <T extends Persistible> List<T> find(final Query<T> query) { CriteriaSpecification criteria = getCriteriaSpecification(null, query, false); final SimpleQuery<T> simpleQuery = (SimpleQuery<T>) query; Criteria aCriteria;//from ww w . j a va2s . com // TODO Esto debera ir en el metodo que hace getCriteriaSpecification // pero como no tiene DetachedCriteria posibilidad de setearle valores // para paginacin hubo que hacerlo as. if (simpleQuery.getPaging() != null) { int firstResult = (simpleQuery.getPaging().getPageNumber() - 1) * simpleQuery.getPaging().getResultsPerPage(); DetachedCriteria idsDetachedCriteria = (DetachedCriteria) criteria; idsDetachedCriteria.setProjection(Projections.id()); Criteria idsCriteria = idsDetachedCriteria.getExecutableCriteria(this.getSession()); idsCriteria.setCacheable(query.getCacheable()); idsCriteria.setFirstResult(firstResult); idsCriteria.setMaxResults(simpleQuery.getPaging().getResultsPerPage()); // Se hace primero el select de los IDs y luego el de los objetos en // si ya que de otra manera en aquellos casos que haya objetos // que tienen colecciones cuenta los mismos varias veces haciendo // que se devuelvan menos resultados. List<Long> ids = idsCriteria.list(); DetachedCriteria theCriteria = (DetachedCriteria) getCriteriaSpecification(null, query, false); if (ids.isEmpty()) { return new ArrayList<T>(); } theCriteria.add(Restrictions.in("id", ids)); aCriteria = theCriteria.getExecutableCriteria(this.getSession()); } else { aCriteria = ((DetachedCriteria) criteria).getExecutableCriteria(this.getSession()); } aCriteria.setCacheable(query.getCacheable()); return aCriteria.list(); }
From source file:ar.com.zauber.commons.repository.SpringHibernateRepository.java
License:Apache License
/** @see Repository#aggregate(Query, Class) */ @SuppressWarnings("unchecked") public final <R, T extends Persistible> R aggregate(final Query<T> query, final AggregateFunction aggregateFunction, final Class<R> retClazz) { Validate.notNull(query);/*from w w w . ja v a2 s . c o m*/ Validate.notNull(aggregateFunction); Validate.notNull(retClazz); boolean ignoreOrder = true; if (aggregateFunction instanceof CompositeAggregateFunction) { List<AggregateFunction> list = ((CompositeAggregateFunction) aggregateFunction).getFunctions(); for (AggregateFunction a : list) { if (a instanceof GroupPropertyAggregateFilter) { ignoreOrder = false; } } } else if (aggregateFunction instanceof GroupPropertyAggregateFilter) { ignoreOrder = false; } final DetachedCriteria criteria = (DetachedCriteria) getCriteriaSpecification(null, query, ignoreOrder); final ProjectionAggregateFunctionVisitor visitor = new ProjectionAggregateFunctionVisitor(); aggregateFunction.accept(visitor); criteria.setProjection(visitor.getProjection()); return (R) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(final Session session) throws HibernateException, SQLException { criteria.getExecutableCriteria(session).setCacheable(query.getCacheable()); final List l = criteria.getExecutableCriteria(session).list(); return l.size() == 0 ? null : l.size() == 1 ? l.get(0) : l; } }); }
From source file:au.com.optus.mcas.sdp.bizservice.ott.ordertracking.batchjob.dao.impl.AbstractDaoImpl.java
License:Open Source License
/** * {@inheritDoc}//from w w w . jav a 2 s . c o m */ @SuppressWarnings("unchecked") public List<E> findByCriteria(final DetachedCriteria criteria) { Assert.notNull(criteria, "Detached criterial cannot be null in call to findByCriteria()"); if (getLogger().isDebugEnabled()) { getLogger().debug(String.format("Finding instances of '%s' using detached criteria: %s", getEntityClass(), criteria)); } final Criteria executableCriteria = criteria.getExecutableCriteria(getHibernateSession()); return executableCriteria.list(); }
From source file:au.com.optus.mcas.sdp.bizservice.ott.ordertracking.batchjob.dao.impl.AbstractDaoImpl.java
License:Open Source License
/** * {@inheritDoc}// w w w.ja v a 2 s .c o m */ @SuppressWarnings("unchecked") public List<E> findByCriteria(final DetachedCriteria criteria, final int firstResult, final int maxResults) { Assert.notNull(criteria, "Detached criterial cannot be null in call to findByCriteria()"); if (getLogger().isDebugEnabled()) { getLogger().debug(String.format( "Finding instances of '%s' using detached criteria: %s [firstResult = %d, maxResults = %d]", getEntityClass(), criteria, firstResult, maxResults)); } final Criteria executableCriteria = criteria.getExecutableCriteria(getHibernateSession()); if (firstResult >= 0) { executableCriteria.setFirstResult(firstResult); } if (maxResults > 0) { executableCriteria.setMaxResults(maxResults); } return executableCriteria.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. //from w ww .j a va2 s.c o m * * @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; }