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

休止状態についてはわかりませんが、それが通常のSQLである場合、この行は不完全です:

Left Join A.Results R

などの結合条件を指定する必要があります。

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