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

當使用 「COUNT(*)」, 「取」 是不需要的。

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

您更改:

c.Permissions to Permissions 
+0

不幸的是,這導致了「加入的路徑!」因爲許可實體不再被識別。 –

+1

獲取實際行時,'fetch'關鍵字是必需的。從我原來的計數查詢中刪除'fetch'似乎可以做到這一點。不知道爲什麼這有效。 –