Probably the problem is that Criteria does not throw the exception we are
throwing in HQL.You can't use join fetch so deeper using a <bag>

2009/9/4 Thomas Koch <[email protected]>

>
> Hi - Iam trying to load a nested object graph in one go to the
> database.
>
> I have the following class structure:
>
> Report -* ReportArticle  -* VolumeAgreement -* DeliveryReport
>
> A report has a bag of report-articles, each of which in turn have a
> bag of volume-agreements which in turn has a bag of delivery-report.
>
> Now to compute the status of the report i need to load all of the
> related objects down to the delivery-report.
>
> I have tried
>
>            var transformer = new DistinctRootEntityResultTransformer
> ();
>
>            var reportCriteria = NHibernateSession.CreateCriteria
> (typeof(Report));
>            reportCriteria.Add(Restrictions.IdEq(reportId));
>            reportCriteria.SetResultTransformer(transformer);
>            reportCriteria.SetFetchMode("ReportArticles",
> FetchMode.Join);
>            reportCriteria.SetFetchMode
> ("ReportArticles.VolumeAgreements", FetchMode.Join);
>            reportCriteria.SetFetchMode
> ("ReportArticles.VolumeAgreements.DeliveryReports", FetchMode.Join);
>
>
>            var reports = reportCriteria.List<Report>();
>            report = reports.FirstOrDefault();
>
> However, the collection of VolumeAgreements is still multiplied many
> times over in the ReportArticles. It is as if the ResultTransformer is
> not applied to this level.
>
> Any suggestions would be appreciated.
>
> Kind regards
> Thomas
> >
>


-- 
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to