protected List<Subcriteria> getCriteriaSubcriteria(Criteria executable){ List<Subcriteria> subcriteriaList = new ArrayList<CriteriaImpl.Subcriteria>(); if(executable instanceof CriteriaImpl){ CriteriaImpl criteriaImpl = (CriteriaImpl)executable; Iterator subcriteriaIterator = criteriaImpl.iterateSubcriteria(); while (subcriteriaIterator.hasNext()){ Subcriteria subcriteria = (Subcriteria) subcriteriaIterator.next(); subcriteriaList.add(subcriteria); } } return subcriteriaList; } protected List<Order> getOrderingFromCriteria(Criteria executable){
private void createAssociationPathCriteriaMap() { Iterator iter = rootCriteria.iterateSubcriteria(); while ( iter.hasNext() ) { CriteriaImpl.Subcriteria crit = (CriteriaImpl.Subcriteria) iter.next(); String wholeAssociationPath = getWholeAssociationPath(crit); Object old = associationPathCriteriaMap.put( wholeAssociationPath, crit ); if (old!=null) { throw new QueryException("duplicate association path: " + wholeAssociationPath ); } } }
private void createAssociationPathCriteriaMap() { Iterator iter = rootCriteria.iterateSubcriteria(); while ( iter.hasNext() ) { CriteriaImpl.Subcriteria crit = ( CriteriaImpl.Subcriteria ) iter.next(); String wholeAssociationPath = getWholeAssociationPath( crit ); Object old = associationPathCriteriaMap.put( wholeAssociationPath, crit ); if ( old != null ) { throw new QueryException( "duplicate association path: " + wholeAssociationPath ); } int joinType = crit.getJoinType(); old = associationPathJoinTypesMap.put( wholeAssociationPath, new Integer( joinType ) ); if ( old != null ) { // TODO : not so sure this is needed... throw new QueryException( "duplicate association path: " + wholeAssociationPath ); } } }
private void createAliasCriteriaMap() { aliasCriteriaMap.put( rootCriteria.getAlias(), rootCriteria ); Iterator iter = rootCriteria.iterateSubcriteria(); while ( iter.hasNext() ) { Criteria subcriteria = ( Criteria ) iter.next(); if ( subcriteria.getAlias() != null ) { Object old = aliasCriteriaMap.put( subcriteria.getAlias(), subcriteria ); if ( old != null ) { throw new QueryException( "duplicate alias: " + subcriteria.getAlias() ); } } } }
private void createAliasCriteriaMap() { aliasCriteriaMap.put( rootCriteria.getAlias(), rootCriteria ); Iterator iter = rootCriteria.iterateSubcriteria(); while ( iter.hasNext() ) { Criteria subcriteria = (Criteria) iter.next(); if ( subcriteria.getAlias()!=null ) { Object old = aliasCriteriaMap.put( subcriteria.getAlias(), subcriteria ); if (old!=null) { throw new QueryException("duplicate alias: " + subcriteria.getAlias() ); } } } }
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(); } });
lockModes.put( getSQLAlias(subcriteria), me.getValue() ); iter = rootCriteria.iterateSubcriteria(); while ( iter.hasNext() ) { CriteriaImpl.Subcriteria subcriteria = (CriteriaImpl.Subcriteria) iter.next();
lockModes.put( getSQLAlias( subcriteria ), me.getValue() ); iter = rootCriteria.iterateSubcriteria(); while ( iter.hasNext() ) { CriteriaImpl.Subcriteria subcriteria = ( CriteriaImpl.Subcriteria ) iter.next();