У меня следующий запрос Criteria (с использованием лямбда-расширений):
var workflowResult = repository.GetSession()
.CreateCriteria<Core.Domain.Application>()
.SetFetchMode<Core.Domain.Application>(app => app.ApplicationWorkflows, FetchMode.Join)
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.Future<Core.Domain.Application>();
Это работает правильно. Каждое приложение охотно загружает
Коллекция ApplicationWorkflows. Тем не менее, я хотел бы пойти еще глубже
и загрузите объект ApplicationStatus каждого ApplicationWorkflow. я
может сделать это с помощью следующего HQL, но хотел бы перевести на
Критерии:
var workflowQuery = "SELECT DISTINCT app" +
" FROM Application app" +
" JOIN FETCH app.ApplicationWorkflows awf" +
" JOIN FETCH awf.ApplicationStatus";
Мне посоветовали использовать следующее, но у меня проблемы с ним, работающие во всех случаях:
.SetFetchMode<Core.Domain.Application>(app => app.ApplicationWorkflows[0].ApplicationStatus, FetchMode.Join)