나는 엔티티가 두 번째 수준의 캐시를 연결할 때까지 따라서 Cacheable()
줄의 주석을 제거하면 예외가 발생합니다.NHibernate에 2 레벨의 캐시
메시지 : 값은 null 일 수 없습니다. 매개 변수 이름 :
이at NHibernate.Transform.AliasedTupleSubsetResultTransformer.IncludeInTransform(String[] aliases, Int32 tupleLength)
at NHibernate.Transform.CacheableResultTransformer.Create(ITupleSubsetResultTransformer transformer, String[] aliases, Boolean[] includeInTuple)
at NHibernate.Loader.Loader.GenerateQueryKey(ISessionImplementor session, QueryParameters queryParameters)
at NHibernate.Loader.Loader.ListUsingQueryCache(ISessionImplementor session, QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
at NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results)
그래서 문제점은 무엇입니까 : 스택 트레이스 별명? 그것은 NHibernate의 버그입니까? 다른 공급자를 사용해 보았습니다. 또한 나는이 같은 CacheableResultTransformer을 만들려고 :
는CacheableResultTransformer.Create(Transformers.AliasToBean<SalesUnitDto>(), new[] { "Id", "Name" }, new[] { true, true })
반환하고 캐시 데이터 수 있지만, 단지 튜플 (객체 [])로. 나는 Dto를 돌려 줄 수 없었다. github
어떻게'result'가 선언 되었습니까? –
@Andrew Whitaker,'result'는'SalesUnitDto'입니다. –
재생할 수 없습니다 - Cacheable()과 함께 작동합니다. NH v4.0.4.4000 –