/** * @param requestedPage * @param criteria * @param existingAliases */ private void enrichCriteriaWithFilterables(Page requestedPage, Criteria criteria, Set<String> existingAliases) { sk.seges.sesam.dao.Criterion filterable = requestedPage.getFilterable(); if (filterable == null) { return; } Class<?> resultClass = null; String className = null; try { if (criteria instanceof CriteriaImpl) { className = ((CriteriaImpl) criteria).getEntityOrClassName(); resultClass = Class.forName(className); } } catch (ClassNotFoundException e) { throw new RuntimeException("Unable to recreate class with string " + className + " for filterables."); } criteria.add(retrieveRestriction(filterable, criteria, existingAliases, resultClass)); }
protected Object getResult(Criteria crit) { CriteriaImpl impl = (CriteriaImpl) crit; String entityOrClassName = impl.getEntityOrClassName(); GrailsClass domainClass = application.getArtefact(DomainClassArtefactHandler.TYPE, entityOrClassName); boolean useLimit = establishWhetherToUseLimit(domainClass.getClazz()); return getResult(crit, useLimit); }
public ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode) { errorIfClosed(); String entityName = criteria.getEntityOrClassName(); CriteriaLoader loader = new CriteriaLoader( getOuterJoinLoadable(entityName), factory, criteria, entityName, getEnabledFilters() ); return loader.scroll(this, scrollMode); }
public Object doInHibernate(Session session) throws HibernateException, SQLException { CriteriaImpl impl = (CriteriaImpl) criteria; Criteria totalCriteria = session.createCriteria(impl.getEntityOrClassName()); hibernateTemplate.applySettings(totalCriteria); Iterator iterator = impl.iterateExpressionEntries(); while (iterator.hasNext()) { CriteriaImpl.CriterionEntry entry = (CriteriaImpl.CriterionEntry) iterator.next(); totalCriteria.add(entry.getCriterion()); } Iterator subcriteriaIterator = impl.iterateSubcriteria(); while (subcriteriaIterator.hasNext()) { CriteriaImpl.Subcriteria sub = (CriteriaImpl.Subcriteria) subcriteriaIterator.next(); totalCriteria.createAlias(sub.getPath(), sub.getAlias(), sub.getJoinType(), sub.getWithClause()); } totalCriteria.setProjection(impl.getProjection()); totalCriteria.setProjection(Projections.rowCount()); return ((Number)totalCriteria.uniqueResult()).intValue(); } });
final SessionFactoryImplementor factory = session.getFactory(); final OuterJoinLoadable persister = (OuterJoinLoadable) factory.getEntityPersister( criteriaImpl.getEntityOrClassName() ); CriteriaQueryTranslator innerQuery = new CriteriaQueryTranslator( factory, criteriaImpl, criteriaImpl.getEntityOrClassName(), //implicit polymorphism not supported (would need a union) criteriaQuery.generateSQLAlias(), criteriaQuery
final SessionFactoryImplementor factory = session.getFactory(); final OuterJoinLoadable persister = (OuterJoinLoadable) factory.getEntityPersister( criteriaImpl.getEntityOrClassName() ); CriteriaQueryTranslator innerQuery = new CriteriaQueryTranslator( factory, criteriaImpl, criteriaImpl.getEntityOrClassName(), //implicit polymorphism not supported (would need a union) criteriaQuery.generateSQLAlias(), criteriaQuery
public List list(CriteriaImpl criteria) throws HibernateException { String[] implementors = factory.getImplementors( criteria.getEntityOrClassName() ); int size = implementors.length;
public List list(CriteriaImpl criteria) throws HibernateException { errorIfClosed(); checkTransactionSynchStatus(); String[] implementors = factory.getImplementors( criteria.getEntityOrClassName() ); int size = implementors.length;
public ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode) { String entityName = criteria.getEntityOrClassName(); CriteriaLoader loader = new CriteriaLoader( getOuterJoinLoadable(entityName), factory, criteria, entityName, getEnabledFilters() ); autoFlushIfRequired( loader.getQuerySpaces() ); dontFlushFromFind++; try { return loader.scroll(this, scrollMode); } finally { dontFlushFromFind--; } }
public List list(CriteriaImpl criteria) throws HibernateException { errorIfClosed(); String[] implementors = factory.getImplementors( criteria.getEntityOrClassName() ); int size = implementors.length; CriteriaLoader[] loaders = new CriteriaLoader[size]; for( int i=0; i <size; i++ ) { loaders[i] = new CriteriaLoader( getOuterJoinLoadable( implementors[i] ), factory, criteria, implementors[i], getEnabledFilters() ); } List results = Collections.EMPTY_LIST; boolean success = false; try { for( int i=0; i<size; i++ ) { final List currentResults = loaders[i].list(this); currentResults.addAll(results); results = currentResults; } success = true; } finally { afterOperation(success); } temporaryPersistenceContext.clear(); return results; }
public ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode) { errorIfClosed(); checkTransactionSynchStatus(); String entityName = criteria.getEntityOrClassName(); CriteriaLoader loader = new CriteriaLoader( getOuterJoinLoadable(entityName), factory, criteria, entityName, getEnabledFilters() ); autoFlushIfRequired( loader.getQuerySpaces() ); dontFlushFromFind++; try { return loader.scroll(this, scrollMode); } finally { dontFlushFromFind--; } }