Spring.Data.NHibernate.SessionFactoryUtils.ApplyTransactionTimeout C# (CSharp) Method

ApplyTransactionTimeout() public static method

Applies the current transaction timeout, if any, to the given criteria object
If criteria argument is null.
public static ApplyTransactionTimeout ( ICriteria criteria, ISessionFactory sessionFactory ) : void
criteria ICriteria The Hibernate Criteria object.
sessionFactory ISessionFactory Hibernate SessionFactory that the Criteria was created for /// (can be null).
return void
        public static void ApplyTransactionTimeout(ICriteria criteria, ISessionFactory sessionFactory) 
        {
            if (criteria == null)
            {
                throw new ArgumentNullException("criteria", "No Criteria object specified");
            }

            SessionHolder sessionHolder =
                (SessionHolder) TransactionSynchronizationManager.GetResource(sessionFactory);
            if (sessionHolder != null && sessionHolder.HasTimeout) 
            {
                criteria.SetTimeout(sessionHolder.TimeToLiveInSeconds);
            }
        }

Same methods

SessionFactoryUtils::ApplyTransactionTimeout ( IQuery query, ISessionFactory sessionFactory ) : void

Usage Example

Exemplo n.º 1
0
        /// <summary>
        /// Prepare the given IQuery object, applying cache settings and/or
        /// a transaction timeout.
        /// </summary>
        /// <param name="queryObject">The query object to prepare.</param>
        public virtual void PrepareQuery(IQuery queryObject)
        {
            if (CacheQueries)
            {
                queryObject.SetCacheable(true);
                if (QueryCacheRegion != null)
                {
                    queryObject.SetCacheRegion(QueryCacheRegion);
                }
            }

            if (FetchSize > 0)
            {
                AbstractQueryImpl queryImpl = queryObject as AbstractQueryImpl;
                if (queryImpl != null)
                {
                    queryImpl.SetFetchSize(FetchSize);
                }
                else
                {
                    log.Warn("Could not set FetchSize for IQuery.  Expected Implemention to be of type AbstractQueryImpl");
                }
            }

            if (MaxResults > 0)
            {
                queryObject.SetMaxResults(MaxResults);
            }

            SessionFactoryUtils.ApplyTransactionTimeout(queryObject, SessionFactory);
        }
All Usage Examples Of Spring.Data.NHibernate.SessionFactoryUtils::ApplyTransactionTimeout