Inheritance: HqlTreeNode
		public HqlTreeNode Query(HqlSelectFrom selectFrom, HqlWhere where, HqlOrderBy orderBy)
		{
			return new HqlQuery(_factory, selectFrom, where, orderBy);
		}
		public HqlQuery Query(HqlSelectFrom selectFrom, HqlWhere where)
		{
			return new HqlQuery(_factory, selectFrom, where);
		}
 public HqlQuery Query(HqlSelectFrom selectFrom, HqlWhere where)
 {
     return(new HqlQuery(_factory, selectFrom, where));
 }
 public HqlTreeNode Query(HqlSelectFrom selectFrom, HqlWhere where, HqlOrderBy orderBy)
 {
     return(new HqlQuery(_factory, selectFrom, where, orderBy));
 }
		public override void VisitWhereClause(WhereClause whereClause, QueryModel queryModel, int index)
		{
			// Visit the predicate to build the query
			var visitor = new HqlGeneratorExpressionTreeVisitor(_parameterAggregator);
			visitor.Visit(whereClause.Predicate);

			// There maybe a where clause in existence already, in which case we AND with it.
			if (_whereClause == null)
			{
				_whereClause = _hqlTreeBuilder.Where(visitor.GetHqlTreeNodes().Single());
			}
			else
			{
				HqlAnd mergedPredicates = _hqlTreeBuilder.And(_whereClause.Children.Single(),
				                                              visitor.GetHqlTreeNodes().Single());
				_whereClause = _hqlTreeBuilder.Where(mergedPredicates);
			}
		}