我有以下NHibernate的查詢,結果就是DTO的,沒有實體的名單:SetCacheable拋出IndexOutOfBoundsException異常
var result = query
//.SetCacheable(true)
.SetResultTransformer(new MyDTOTransformer())
.List<DTO>();
這適用於SetCacheable中發表評論,但它拋出當我設置SetCacheable爲true IndexOutOfBoundsException異常。
這是堆棧跟蹤:
at NHibernate.Type.TypeFactory.Disassemble(Object[] row, ICacheAssembler[] types, Boolean[] nonCacheable, ISessionImplementor session, Object owner)
at NHibernate.Cache.StandardQueryCache.Put(QueryKey key, ICacheAssembler[] returnTypes, IList result, Boolean isNaturalKeyLookup, ISessionImplementor session)
at NHibernate.Loader.Loader.PutResultInQueryCache(ISessionImplementor session, QueryParameters queryParameters, IType[] resultTypes, IQueryCache queryCache, QueryKey key, IList result)
at NHibernate.Loader.Loader.ListUsingQueryCache(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
at NHibernate.Loader.Loader.List(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
at NHibernate.Loader.Custom.CustomLoader.List(ISessionImplementor session, QueryParameters queryParameters)
at NHibernate.Impl.SessionImpl.ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results)
at NHibernate.Impl.SessionImpl.List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results)
at NHibernate.Impl.SessionImpl.List[T](NativeSQLQuerySpecification spec, QueryParameters queryParameters)
at NHibernate.Impl.SqlQueryImpl.List[T]()
at ...
誰能幫助我,說我該怎麼解決這個問題(或者即使這是在NHibernate的支持)?
我目前正在使用NHibernate-version 2.1.0.4000。
謝謝 耶勒
您是否在您的配置中啓用了查詢緩存? – AlexCuse 2010-07-08 11:43:14
我已經將use-query-cache設置爲true(使用fluent-nhibernate)。但我沒有指定二級緩存提供程序。我只是想知道我的命名查詢的結果在會話期間被緩存了。 – Jelle 2010-07-08 12:27:44