ExecutionException, выдаваемый HQL Query - PullRequest
1 голос
/ 17 января 2012

При попытке выполнить мой HQL-запрос я получаю следующее исключение:

java.util.concurrent.ExecutionException: javax.ejb.EJBException: 
java.lang.IllegalArgumentException: org.hibernate.QueryException: query specified join 
fetching, but the owner of the fetched association was not present in the select list

А вот запрос, который я выполняю:

SELECT new com.airit.propworks.dto.CompanyContactReportDTO(comp, compStatus.statusDesc) 
FROM CoCompany as comp 
LEFT JOIN FETCH comp.coCompanyCategoriesCompanyNumbers as compCat 
LEFT JOIN FETCH comp.coContactCompanyNumbers as compCont 
LEFT JOIN FETCH comp.coOperatingNamesCompanyNumbers 
LEFT JOIN compCat.categoryFunctionCoCategoryList as compFcn 
LEFT JOIN FETCH compCont.coContactDocumentssCompositeFK1 as contDoc 
LEFT JOIN FETCH compCont.coContactJobssCompositeFK1 as contJob 
LEFT JOIN FETCH compCont.coPhoneNumberssCompositeFK1 
LEFT JOIN FETCH contDoc.documentTypeCoDocumentTypes as docTypes 
LEFT JOIN FETCH contJob.contactFunctionCoContactFunctions as contFcn 
LEFT JOIN comp.companyStatusCoCompanyStatuses as compStatus --this was added by me
WHERE comp.companyNumber = ? ORDER BY comp.companyName

Строка, вторая за последней, была добавлена ​​мной, а конструктор - мной. Только когда я добавил эти строки, я начал получать исключение.

Как вы можете видеть, вторая-последняя строка, ссылающаяся на comp.companyStatusCoCompanyStatuses, является соединением, которое возвращает единственный объект CoCompanyStatuses, который я затем пытаюсь получить из строки statusDesc и передать конструктору.

Я не уверен, что вызывает исключение, которое я получаю. Ребята, вы что-нибудь видите?

1 Ответ

1 голос
/ 17 января 2012

Есть открытая ошибка для использования select new в сочетании с join fetch.

Поскольку проблема связана с добавленным select new, вы можете отделить извлечение от построения CompanyContactReportDTO.

...