2016-08-15 18 views
0

hqlクエリの行を数えようとしています。 TypeOfPermission列が存在しないという警告が表示されます。以前のクエリがうまくいくのは奇妙です。以下の行が戻っただし、次のカウントクエリを使用して2行(予想通り)HQL:where句の不明な列

from ClientIdentity c left join fetch c.Permissions p where p.TypeOfPermission = :permissionType; 

を私に与えコラムTypeOfPermissionはもはや認識されているように、クエリは失敗しません。

countQuery = "select count(*) from ClientIdentity c left join fetch c.Permissions p where p.TypeOfPermission = :permissionType"; 
long count = countQuery.UniqueResult<long>(); 

答えて

0

、 "フェッチ" は必要ありません。

countQuery = "select count(*) from ClientIdentity c left join c.Permissions p where p.TypeOfPermission = :permissionType"; 
long count = countQuery.UniqueResult<long>(); 
0

、変更: "COUNT(*)" を使用している場合

c.Permissions to Permissions 
+0

残念なことに、残念ながら、これは「参加するパスが必要です!」 Permissionエンティティは認識されなくなりました。 –

+1

実際の行を取得するには、 'fetch'キーワードが必要です。元のカウントクエリから 'フェッチ'を削除すると、そのトリックを行うようです。なぜそれがうまくいくのかわからない。 –

関連する問題