Как получить список объектов с более чем одной инициализированной коллекцией, используя Eager Loading и Detached Criteria? - PullRequest
0 голосов
/ 06 июня 2009

У меня есть класс с двумя ассоциациями "многие ко многим". После прочтения AR документы Я понял, что мне разрешено получать только одну коллекцию за один раз, используя нетерпеливую загрузку. Итак, как можно получить список объектов с обеими инициализированными коллекциями для каждого объекта, используя готовую загрузку и DetachedCriteria?

Пока ...

DetachedCriteria dc = DetachedCriteria.For();
dc.SetResultTransformer(new DistinctRootEntityResultTransformer());
dc.SetFetchMode("ComplaintCause", FetchMode.Eager);
dc.SetFetchMode("InsuranceType", FetchMode.Eager);
dc.SetFetchMode("Applicants", FetchMode.Eager); // MANY-TO-MANY COLLECTION

Теперь я хотел бы получить еще одну коллекцию:

dc.SetFetchMode("Insurers", FetchMode.Eager); // THE ADDITIONAL COLLECTION TO EAGER LOAD 

Это дает мне странное декартово произведение.

Как использовать MultiQuery или MultiCriteria для получения результатов с обоими инициализированными коллекциями?

1 Ответ

0 голосов
/ 07 июня 2009

См. эту статью для справки, в ней объясняются и MultiQuery, и MultiCriteria для решения этой проблемы.

...