private void CreateSubQuerySpaces()
        {
            var subQueries =
                rootCriteria.IterateExpressionEntries()
                .Select(x => x.Criterion)
                .OfType <SubqueryExpression>()
                .Select(x => x.Criteria)
                .OfType <CriteriaImpl>();

            foreach (var criteriaImpl in subQueries)
            {
                //The RootSqlAlias is not relevant, since we're only retreiving the query spaces
                var translator = new CriteriaQueryTranslator(sessionFactory, criteriaImpl, criteriaImpl.EntityOrClassName, RootSqlAlias);
                subQuerySpaces.UnionWith(translator.GetQuerySpaces());
                (subPersisters = subPersisters ?? new HashSet <IPersister>()).UnionWith(translator.GetPersisters());
            }
        }
 internal override bool IsCacheable(QueryParameters queryParameters)
 {
     return(IsCacheable(queryParameters, translator.SupportsQueryCache, translator.GetPersisters()));
 }