Loader
Load()
private void CreateCriteriaLoaders() { //a criteria can use more than a single query (polymorphic queries), need to have a //way to correlate a loader to a result index int criteriaIndex = 0; foreach (CriteriaImpl criteria in criteriaQueries) { string[] implementors = factory.GetImplementors(criteria.EntityOrClassName); int size = implementors.Length; CriteriaLoader[] tmpLoaders = new CriteriaLoader[size]; Iesi.Collections.Generic.ISet<string> spaces = new HashedSet<string>(); for (int i = 0; i < size; i++) { CriteriaLoader loader = new CriteriaLoader( session.GetOuterJoinLoadable(implementors[i]), factory, criteria, implementors[i], session.EnabledFilters ); tmpLoaders[i] = loader; loaderToResultIndex[loader] = criteriaIndex; spaces.AddAll(tmpLoaders[i].QuerySpaces); } loaders.AddRange(tmpLoaders); criteriaIndex += 1; } }
public String GetGeneratedSql(ICriteria criteria) { var criteriaImpl = (CriteriaImpl)criteria; var sessionImpl = (SessionImpl)criteriaImpl.Session; var factory = (SessionFactoryImpl)sessionImpl.SessionFactory; var implementors = factory.GetImplementors(criteriaImpl.EntityOrClassName); var loader = new CriteriaLoader((IOuterJoinLoadable)factory.GetEntityPersister(implementors[0]), factory, criteriaImpl, implementors[0], sessionImpl.EnabledFilters); return loader.SqlString.ToString(); }