J'essaie de faire une requête sur hql hibernate (version 3.5.3), la requête inclut plusieurs jointures entre différentes tables (4 tables). C'est la requête:Rejoindre Hibernate 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)
J'ai rencontré une erreur de syntaxe sur ON, quelqu'un peut-il m'aider à résoudre ce problème, thx.
ps: je sais que je peux faire des jointures même sans utiliser la commande JOIN, c'est la requête originale:
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
Mais je ne peux pas utiliser ce formulaire, car il crée plusieurs CROSS JOIN (s) sur le Base de données MySQL et ce n'est pas bon.
si est un mot-clé dans SQL. Et aussi ce que vous avez n'est pas HQL. C'est SQL – Jens
En bref, modélisez correctement vos entités et vous ne devriez pas faire de jointures comme ça. Quoi qu'il en soit, la dernière version d'Hibernate fournit ce type de jointure arbitraire mais je ne recommanderai pas de l'utiliser à moins que cela ne soit nécessaire. Cela ne fait que ruiner l'idée d'utiliser ORM pour créer un modèle d'entité approprié. –
Montrez-nous les entités Hibernate qui mappent ces tables. – Dherik