,我發現了以下情況例外,當我嘗試運行我的HQL查詢:ExecutionException當通過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
字符串傳遞給構造函數。
我不確定是什麼原因導致了我得到的異常。你們看到什麼了嗎?
在DB中保存DTO? – yair 2012-01-16 22:30:22
@yair不,這是一個查詢從數據庫中恢復數據。 DTO是數據的容器。 – Graham 2012-01-16 22:34:41
哦,我現在看到它:)。 – yair 2012-01-17 08:37:03