As for the affected versions, I just tried to copy what was in Hibernate's
issue. I ran the other tests without issue, though now I see you updated the
issue with a broken test. Perhaps I missed it. I'll check the corresponding
test on the Hibernate side.

-r

On Sat, Apr 23, 2011 at 4:23 AM, Fabio Maulo <[email protected]> wrote:

> Rory,
> have you tried if the patch break others tests ?
>
>
> On Fri, Apr 22, 2011 at 10:36 PM, Rory Plaire <[email protected]>wrote:
>
>> Apparenlty this is a limitation in the recursive load cycle of the
>> stateless session whereby the temporary persistence context was being
>> cleared on each recursive load, meaning previously loaded entities were not
>> in the entity map.
>>
>> This issue was fixed in Hibernate, and I've ported the fix over to
>> NHibernate here: http://216.121.112.228/browse/NH-2669
>>
>> -r
>>
>> On Thu, Apr 21, 2011 at 5:35 PM, Rory Plaire <[email protected]>wrote:
>>
>>> Hi all -
>>>
>>> I'm cross-posting this from SO, since although this is the "official"
>>> channel, there is better findability over there.
>>>
>>>
>>> http://stackoverflow.com/questions/5751197/eager-fetching-of-a-great-grandchild-collection-using-a-stateless-session-via-nhi
>>>
>>> I'm using an NHibernate Stateless Session to load bulk data into the
>>> database. As data is loaded, later entities need to lookup previous entities
>>> in order to add them to child collections. This operation involves needing
>>> data on a grandchild object, which in turn needs a great-grandchild
>>> collection to be available.
>>>
>>> The criteria looks like this:
>>>
>>> var result = InternalRepository.CreateCritera<Root>()
>>>
>>>
>>>
>>>                 .SetResultTransformer(Transformers.DistinctRootEntity)
>>>
>>>                 .Add(Restrictions.IdEq(id))
>>>
>>>                 .SetFetchMode("Child", FetchMode.Eager)
>>>
>>>                 .CreateAlias("Child", "a", JoinType.LeftOuterJoin)
>>>
>>>
>>>
>>>                 .SetFetchMode("a.Grandchild", FetchMode.Eager)
>>>
>>>                 .CreateAlias("Grandchild", "b", JoinType.LeftOuterJoin)
>>>
>>>
>>>
>>>                 .SetFetchMode("b.GreatGrandchildCollection", 
>>> FetchMode.Eager)
>>>
>>>
>>>
>>>                 .UniqueResult<Root>();
>>>
>>> When I execute this, TwoPhaseLoad throws an exception during
>>> InitializeEntity since the session's persistence context entity entries
>>> are empty:
>>>
>>> at NHibernate.Engine.TwoPhaseLoad.InitializeEntity(Object entity, Boolean 
>>> readOnly, ISessionImplementor session, PreLoadEvent preLoadEvent, 
>>> PostLoadEvent postLoadEvent) in TwoPhaseLoad.cs: line 64
>>>
>>>
>>>
>>> at NHibernate.Loader.Loader.InitializeEntitiesAndCollections(IList 
>>> hydratedObjects, Object resultSetId, ISessionImplementor session, Boolean 
>>> readOnly) in Loader.cs: line 603
>>>
>>>
>>>
>>> at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, 
>>> QueryParameters queryParameters, Boolean returnProxies) in Loader.cs: line 
>>> 472
>>>
>>>
>>>
>>> at 
>>> NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor
>>>  session, QueryParameters queryParameters, Boolean returnProxies) in 
>>> Loader.cs: line 243
>>>
>>>
>>>
>>> at NHibernate.Loader.Loader.DoList(ISessionImplementor session, 
>>> QueryParameters queryParameters) in Loader.cs: line 1694
>>>
>>>
>>> ...
>>>
>>> The entity the loader is looking up is the Child entity. Why is the
>>> persistence context entries map empty here? The object is apparently being
>>> fetched (the correct SQL is generated and returns correct results), and the
>>> "Child" entity is created correctly. Why is the entity construction state
>>> incorrect? Does it have to do with how the stateless session uses the
>>> temporary persistence context during eager loads?
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>
>
>
> --
> Fabio Maulo
>
>  --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to