我試圖做一個查詢hql hibernate(版本3.5.3),查詢包括幾個不同的表(4表)之間的聯接。這是查詢:加入休眠HQL
SELECT (lot of stuff)
FROM InvestigationRule as ir
JOIN InvestigationFormula as if ON (ir.tb33InvestigationFormula=if.idInvestigationFormula)
JOIN InvestigationEvent as ie ON (ir.tb27InvestigationEvent=ie.idInvestigationEvent)
JOIN InvestigationSectionEvent as ise ON (ie.eventSection=ise.sectionEventsCod)
我在第一次遇見一個語法錯誤,有人可以幫我解決這個問題,THX。
PS:我知道,我可以加入即使不使用JOIN命令,這是原始查詢:
SELECT (lot of stuff)
FROM InvestigationRule AS ir,
InvestigationEvent as ie,
InvestigationSectionEvent as ise,
InvestigationFormula as if
WHERE ir.dateValidityEnd is null
AND ir.tb27InvestigationEvent = ie.idInvestigationEvent
AND ir.tb33InvestigationFormula = if.idInvestigationFormula
AND ie.eventSection = ise.sectionEventsCod
但由於它在創建幾個CROSS JOIN(S)我不能使用這種形式MySql數據庫,這是不好的。
:
HQL模樣。而且你所擁有的不是HQL。這是SQL – Jens
簡言之,適當地建模你的實體,你不應該這樣加入。無論如何,最新版本的Hibernate確實提供了這種任意加入,但除非必要,否則我不會推薦使用它。這只是破壞了使用ORM的整個想法,你應該組成一個適當的實體模型 –
向我們展示映射這些表的Hibernate實體。 – Dherik