我有两个表,一个用于聚会,一个用于记分卡模板映射。记分卡模板映射表具有返回聚会的外键(在id上)。我想查找具有记分卡模板映射详细信息的所有参与方的列表。
但我收到的错误是:
java.lang.IllegalArgumentException异常: org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌: 在第1行第172列[选择新的 ScorecardTemplateMapping(P,temMap.scoTemplate,temMap.wrkFlwTemplate) 来自com.kpisoft.common.web.domain.Party p left outer join ScorecardTemplateMapping temMap on temMap.organization.id = p.id and temMap.gradeType.id =:gradeType其中 p.organization.organizationTypeId =:orgType和p.clientId =:clientId 按p.organization.name]命令
这是我的疑问:
查询q = entityManager.createQuery(“选择新的 ScorecardTemplateMapping(P,temMap.scoTemplate,temMap.wrkFlwTemplate) 来自Party p left outer join ScorecardTemplateMapping temMap on temMap.organization.id = p.id和temMap.gradeType.id =:gradeType where p.organization.organizationTypeId =:orgType和p.clientId =:clientId 按p.organization.name命令;);
我不知道为什么这不起作用。请帮忙!
答案 0 :(得分:1)
有关语法错误的错误消息非常明确:
unexpected token: on
在JPQL中不支持与ON [条件]连接(ON不是保留字)。如何在JPQL中进行联接,例如here。归结为你必须在where子句中显示连接条件。