1

尝试运行此 Hibernate 查询时出现以下错误:

could not resolve property: candidateID of: result [select SUM(A.Points) from answer A Left Join A.Results R where R.candidateID = '465b4eb2-c306-4092-8914-d272b5a70b11']
QueryString     select SUM(A.Points) from answer A Left Join A.Results R where R.candidateID = '465b4eb2-c306-4092-8914-d272b5a70b11' 

代码

select SUM(A.Points)
 from answer A
 Left Join A.Results R 
 where R.candidateID = '1234'

但是,candidateID 在结果中,所以我不明白这个错误。

4

3 回答 3

2

除了 Java 类和属性的名称之外,HQL 查询不区分大小写。所以 org.hibernate.eg.FOO 不是 org.hibernate.eg.Foo。尝试更改查询类和属性的大小写。还要验证candidateID 的情况。

select SUM(A.points) from Answer A Left Join A.results R where R.candidateID = '465b4eb2-c306-4092-8914-d272b5a70b11']
于 2013-01-31T17:50:32.710 回答
1

实体Results没有名为 的字段candidateID。在 HQL 查询中,应使用持久属性的名称(类中的~字段)而不是数据库列的名称。

于 2013-01-31T17:50:10.077 回答
1

我不知道hibernate,但如果那是正常的sql,这条线是不完整的:

Left Join A.Results R

您必须指定一个加入条件,例如

Left Join A.Results R on a.candidateID = R.candidateID
于 2013-01-31T17:51:34.567 回答