public CriteriaLoader(IOuterJoinLoadable persister, ISessionFactoryImplementor factory, CriteriaImpl rootCriteria,
string rootEntityName, IDictionary<string, IFilter> enabledFilters)
: base(factory, enabledFilters)
{
translator = new CriteriaQueryTranslator(factory, rootCriteria, rootEntityName, CriteriaQueryTranslator.RootSqlAlias);
querySpaces = translator.GetQuerySpaces();
CriteriaJoinWalker walker =
new CriteriaJoinWalker(persister, translator, factory, rootCriteria, rootEntityName, enabledFilters);
InitFromWalker(walker);
userAliases = walker.UserAliases;
resultTypes = walker.ResultTypes;
includeInResultRow = walker.IncludeInResultRow;
resultRowLength = ArrayHelper.CountTrue(IncludeInResultRow);
// fill caching objects only if there is a projection
if (translator.HasProjection)
{
cachedProjectedColumnAliases = translator.ProjectedColumnAliases;
}
PostInstantiate();
}