2013-01-31 95 views
1

我越來越想運行這個Hibernate查詢,如果出現以下錯誤:的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是結果,所以我不明白這個錯誤。

回答

1

除了Java類和屬性的名稱以外,HQL查詢是不區分大小寫的。所以org.hibernate.eg.FOO不是org.hibernate.eg.Foo。嘗試更改查詢中的類和屬性的大小寫。還要驗證候選ID的大小寫。

select SUM(A.points) from Answer A Left Join A.results R where R.candidateID = '465b4eb2-c306-4092-8914-d272b5a70b11'] 
1

實體Results沒有名爲candidateID的字段。在HQL查詢中,應該使用持久化屬性(類中的〜字段)的名稱而不是數據庫列的名稱。

1

我不知道休眠模式,但如果這是正常的SQL這一行是不完整的:

Left Join A.Results R 

您必須指定一個加入條件,如

Left Join A.Results R on a.candidateID = R.candidateID 
+0

這確實似乎不是真的[在HQL的情況下](http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-joins)。 –

相關問題