1

パーティ用とスコアカード テンプレート マッピング用の 2 つのテーブルがあります。スコアカード テンプレート マッピング テーブルには、(ID 上の) パーティに戻る外部キーがあります。スコアカード テンプレート マッピングの詳細を持つすべての関係者のリストを検索したいと考えています。

しかし、次のようなエラーが表示されます。

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: 予期しないトークン: 行 1、列 172 付近 [com.kpisoft.common から新しい ScorecardTemplateMapping(p,temMap.scoTemplate,temMap.wrkFlwTemplate) を選択します。 web.domain.Party p left outer join ScorecardTemplateMapping temMap on temMap.organization.id=p.id and temMap.gradeType.id=:gradeType p.organization.organizationTypeId=:orgType and p.clientId=:clientId order by p.組織名]

これは私のクエリです:

Query q = entityManager.createQuery("select new ScorecardTemplateMapping(p,temMap.scoTemplate,temMap.wrkFlwTemplate) from Party p left outer join ScorecardTemplateMapping temMap on temMap.organization.id=p.id and temMap.gradeType.id=:gradeType where p.organization.organizationTypeId=:orgType および p.clientId=:clientId p.organization.name 順");

これが機能しない理由がわかりません。助けてください!

4

1 に答える 1

1

構文エラーに関するエラー メッセージは非常に明確です。

unexpected token: on

JPQLではON[条件付き]でjoinすることはサポートされていません(ONは予約語ではありません)。JPQL で結合がどのように行われるかについては、たとえばhere で説明されています。つまり、where 句で結合条件を提示する必要があります。

于 2012-04-18T05:04:33.533 に答える