The rule of thumbs is:don't map a collection if you can't work with lazy=false.
2009/8/12 Fabio Maulo <[email protected]> > as you said "MASSIVE"... lookCountry has as child State that has as child > City that has as child Streets that has as child Address, in an Address > there living people and Person. > The country is China. > > Try to upload the Country with lazy=false. > > What I mean is that you having a completely wrong domain design. > > 2009/8/11 Chris Browne <[email protected]> > > >> hi guys, >> >> i've got strange problem that i'm hoping is just down to my >> inexperience with NH... >> >> i asked this question on stackoverflow: >> >> http://stackoverflow.com/questions/1244995/partially-populate-child-collection-with-nhibernate >> and learnt that it is by design that NH lazy loads the entire child >> collection when you itterate over it, regardless of a supplied >> restriction (in this case i only want child objects with a certain >> date). >> >> so the recomendation was to just load the parent object, then >> separately query for the filtered children i wanted, then associate >> them. >> >> so i've tried that, and it looks to be a winner, except, what ever i >> do, NH keeps hitting the Db and fully populating the child collection, >> even though its lazy loaded, and i'm not iterating over it. >> >> very annoying. >> >> what i want to do is something like the following: >> >> var post = session.CreateCriteria<BlogPost>() >> .Add(Restrictions.Eq("Id", 1)) >> .UniqueResult<BlogPost>(); >> >> var comments = session.CreateCriteria<Comment>() >> .Add(Restrictions.Eq("BlogPostId", 1)) >> .Add(Restrictions.Eq("DatePosted", new DateTime(2009, 8, >> 1))) >> .List<Comment>(); >> >> post.Comments = comments; >> >> but running this bit of code with Sql Profilier running shows that 3 >> queries get sent to the database, the first one is to get the single >> post (good) when the fist statement gets executed, and when the second >> statement gets executed, we get two queries sent to the Db, the first >> of these is to get the filtered list of comments (good!), but then >> another is sent to get the entire list of comments (bad!). >> >> the example i've got here is not the domain my project is in. in the >> real domain the child collection is MASSIVE, and would never be >> queried without a filter on the date, so i REALLY dont want the whole >> lot coming back! >> >> has anyone got any ideas? >> >> cheers, >> chris. >> >> >> >> > > > -- > 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 -~----------~----~----~----~------~----~------~--~---
