Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hql错误,子句位于左联接中_Java_Jquery_Mysql_Hibernate_Hql - Fatal编程技术网

Java Hql错误,子句位于左联接中

Java Hql错误,子句位于左联接中,java,jquery,mysql,hibernate,hql,Java,Jquery,Mysql,Hibernate,Hql,经过几天的研究,我仍然没有找到解决办法 我有一个HQL请求抛出querySyntaxException: Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: with-clause referenced two different from-clause elements [SELECT patDataset.patient.sId , patData ,proDataset.professional.sId, proD

经过几天的研究,我仍然没有找到解决办法

我有一个HQL请求抛出querySyntaxException:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: with-clause referenced two different from-clause elements [SELECT patDataset.patient.sId , patData ,proDataset.professional.sId, proData  FROM com.inovelan.cloud.persistence.server.entities.DataSet patDataset INNER JOIN patDataset.patient patient with patient. sId in (:patientSidList) LEFT JOIN patient.patientProfessionals ppRole with ppRole.id.roleCodingOidcodesystem= :codeSystem AND ppRole.id.roleCodingCode=:codingCode  LEFT JOIN ppRole.professional proRole  LEFT JOIN proRole.dataSet proDataset with proDataset.archive =:archive  LEFT JOIN proDataset.dataProfessionals proData with proData.itemDefinition.id.id in (:proItemDefs)  INNER JOIN patDataset.dataSetDefinition patDatasetDef with patDatasetDef.id.id in(:patDatasetDefIdList) INNER JOIN patDataset.dataPatients patData  LEFT JOIN patDataset.dataPatients data_patient_PAT_SEXE with ( data_patient_PAT_SEXE.itemDefinition.id.id=:data_patient_PAT_SEXE AND patDataset.dataSetDefinition.id.id ='DIRECTORY_PATIENT')  LEFT JOIN patDataset.dataPatients data_patient_PAT_NOM_NAISSANCE with ( data_patient_PAT_NOM_NAISSANCE.itemDefinition.id.id=:data_patient_PAT_NOM_NAISSANCE AND patDataset.dataSetDefinition.id.id ='DIRECTORY_PATIENT')  LEFT JOIN patDataset.dataPatients data_patient_PAT_PRENOM with ( data_patient_PAT_PRENOM.itemDefinition.id.id=:data_patient_PAT_PRENOM AND patDataset.dataSetDefinition.id.id ='DIRECTORY_PATIENT')  WHERE patDataset.archive=:archive  AND patient.active=:patientState  AND ( patDatasetDef.id.id =:dataset_def_pat_DIRECTORY_PATIENT AND patData.itemDefinition.id.id in (:itemdef_list_pat_DIRECTORY_PATIENT)  ) AND patDataset.date = (SELECT MAX(patDataset2.date) FROM com.inovelan.cloud.persistence.server.entities.DataSet patDataset2 WHERE patDataset2.dataSetDefinition.id.id = patDataset.dataSetDefinition.id.id AND patDataset2.patient.sId =  patDataset.patient.sId) ORDER BY (CASE WHEN data_patient_PAT_SEXE.stringValue IS NULL then 1 ELSE 0 END), data_patient_PAT_SEXE.stringValue ASC,(CASE WHEN data_patient_PAT_NOM_NAISSANCE.stringValue IS NULL then 1 ELSE 0 END), data_patient_PAT_NOM_NAISSANCE.stringValue ASC,(CASE WHEN data_patient_PAT_PRENOM.stringValue IS NULL then 1 ELSE 0 END), data_patient_PAT_PRENOM.stringValue ASC]
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:91)
at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:109)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:284)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:131)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:93)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:167)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1836)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:342)
我已经在SQL中尝试过了,我想做的工作非常完美

LEFT OUTER JOIN dataPatient datapatien1 ON dataset.sId=datapatien1.dataSetSid
AND (datapatien1.itemDefinitionId ='SEXE')
AND datasetdef.id ='DIRECTORY_PATIENT'
我在hibernate中听说过这个问题 但是我使用Hibernate5.2,应该可以

我已经检查过类似的问题,但没有人有相同的情况


感谢您的帮助

HQL由于“patDatasetDef.id.id”语句而生成此错误。它在解析该语句时遇到问题

相反,您必须对连接的对象使用连接操作,如下所示: 选择母亲、offspr、mate.name 从家猫当妈妈 内心以母亲的身份结合 左外侧连接母猫。小猫作为子猫

使用参考:
HQL由于“patDatasetDef.id.id”语句而生成此错误。它在解析该语句时遇到问题

相反,您必须对连接的对象使用连接操作,如下所示: 选择母亲、offspr、mate.name 从家猫当妈妈 内心以母亲的身份结合 左外侧连接母猫。小猫作为子猫

使用参考:

LEFT OUTER JOIN dataPatient datapatien1 ON dataset.sId=datapatien1.dataSetSid
AND (datapatien1.itemDefinitionId ='SEXE')
AND datasetdef.id ='DIRECTORY_PATIENT'