public override void List(string query, QueryParameters queryParameters, IList results) { using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); queryParameters.ValidateParameters(); HQLQueryPlan plan = GetHQLQueryPlan(query, false); bool success = false; try { plan.PerformList(queryParameters, this, results); success = true; } catch (HibernateException) { // Do not call Convert on HibernateExceptions throw; } catch (Exception e) { throw Convert(e, "Could not execute query"); } finally { AfterOperation(success); } temporaryPersistenceContext.Clear(); } }
public HQLQueryPlan GetHQLQueryPlan(string queryString, bool shallow, IDictionary<string, IFilter> enabledFilters) { HQLQueryPlanKey key = new HQLQueryPlanKey(queryString, shallow, enabledFilters); HQLQueryPlan plan = (HQLQueryPlan)planCache[key]; if (plan == null) { if (log.IsDebugEnabled) { log.Debug("unable to locate HQL query plan in cache; generating (" + queryString + ")"); } plan = new HQLQueryPlan(queryString, shallow, enabledFilters, factory); } else { if (log.IsDebugEnabled) { log.Debug("located HQL query plan in cache (" + queryString + ")"); } } planCache.Put(key, plan); return plan; }
public override IQueryTranslator[] GetQueries(string query, bool scalar) { using (new SessionIdLoggingContext(SessionId)) { // take the union of the query spaces (ie the queried tables) HQLQueryPlan plan = Factory.QueryPlanCache.GetHQLQueryPlan(query, scalar, EnabledFilters); return(plan.Translators); } }
public void ExecutesCustomSqlFunctionContains() { string hql = @"from Customer c where contains(c.Name, :smth)"; HQLQueryPlan plan = new HQLQueryPlan(hql, false, new CollectionHelper.EmptyMapClass<string, IFilter>(), sessions); Assert.AreEqual(1, plan.ParameterMetadata.NamedParameterNames.Count); Assert.AreEqual(1, plan.QuerySpaces.Count); Assert.AreEqual(1, plan.SqlStrings.Length); }
public override int ExecuteUpdate(string query, QueryParameters queryParameters) { using (new SessionIdLoggingContext(SessionId)) { CheckAndUpdateSessionStatus(); queryParameters.ValidateParameters(); HQLQueryPlan plan = GetHQLQueryPlan(query, false); bool success = false; int result; try { result = plan.PerformExecuteUpdate(queryParameters, this); success = true; } finally { AfterOperation(success); } temporaryPersistenceContext.Clear(); return(result); } }
private QueryExpressionPlan(HQLQueryPlan source, IQueryExpression expression) : base(source) { QueryExpression = expression; }
public HQLQueryPlan GetHQLQueryPlan(IQueryExpression queryExpression, bool shallow, IDictionary<string, IFilter> enabledFilters) { string expressionStr = queryExpression.Key; var key = new HQLQueryPlanKey(expressionStr, shallow, enabledFilters); var plan = (HQLQueryPlan)planCache[key]; if (plan == null) { if (log.IsDebugEnabled) { log.Debug("unable to locate HQL query plan in cache; generating (" + expressionStr + ")"); } plan = new HQLQueryPlan(expressionStr, queryExpression, shallow, enabledFilters, factory); } else { if (log.IsDebugEnabled) { log.Debug("located HQL query plan in cache (" + expressionStr + ")"); } } planCache.Put(key, plan); return plan; }
private HQLExpressionQueryPlan(HQLQueryPlan source, IQueryExpression newQueryExpression) : base(source) { QueryExpression = newQueryExpression; }