Read the bug report, but are you sure this is the same problem? many- to-one relations are not collections? At least not on the job object in this case..
I'm thinking that the problem is very similar though, as references that are null will point to an object, and itwill have to be checked again as well. Man.. This one is really a showstopper :( On 11 Mar., 13:40, Fabio Maulo <[email protected]> wrote: > http://jira.nhforge.org/NH-1211 > > Using "left join" what happen is that NH can't recognize if the relation is > null because was never loaded or is null because the relation not exists. > > 2009/3/11 Chucara <[email protected]> > > > > > > > Hmm.. I'm not sure I follow, and I can't seem to access > > jira.nhibernate.org. > > > What do you mean, "but null"? > > > Specifying joins manually seems like a pretty basic feature, has this > > not been implemented yet, or is it broken? > > > On 11 Mar., 13:01, Fabio Maulo <[email protected]> wrote: > > > about many-to-one with "join fetch" but null, there is an open issue. > > > 2009/3/11 Chucara <[email protected]> > > > > > Let me start by explaining the behavior I'm looking for: > > > > > - When I load an entity with "from Entity", I just want the entity > > > > itself, nothing else. > > > > - I then want to manually specificy which relations should be eager > > > > loaded. > > > > - In my example, all relations are many-to-one. > > > > - I don't want to use Proxies as I never want to use nHibernate's lazy > > > > loading > > > > > But I can't seem to eager load properly.. It does eager load, but > > > > nHibernate touches the database several times. I need one single > > > > select.. join query. > > > > > I've tried the following: > > > > > string queryString = "from Job job "+ > > > > "left outer join fetch job.ManufacturingStep " + > > > > // ... > > > > "left outer join fetch job.Parent " + > > > > ""; > > > > var tmp2 = session.CreateQuery(queryString).List(); > > > > > and > > > > > var query = session.CreateCriteria(typeof(Job)) > > > > .SetFetchMode("ManufacturingStep", FetchMode.Join) > > > > // ... > > > > .SetFetchMode("Parent", FetchMode.Join); > > > > var tmp = query.List(); > > > > > How can I do this query in a single database call? I've also tried > > > > FetchMode.Eager > > > > > The relationships are defined as follows: > > > > <many-to-one name="Parent" column="ACT_PARENTREF" class="ActivityBase"/ > > > > > The classes for the related entities like this: > > > > <class name="Lmc.Mars.Std.Model.ManufacturingStep, Lmc.Mars.Std" > > > > table="STD73_UDV.MANUFACTURING_STEP" lazy="false"> > > > > > I can't seem to wrap my head around how this works.. It seems no > > > > matter what I do, I get the same result. > > > > -- > > > Fabio Maulo > > -- > 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 -~----------~----~----~----~------~----~------~--~---
