2014-10-27 64 views
1

我收到以下錯誤,當我嘗試執行下面的查詢 -org.hibernate.hql.internal.ast.ErrorCounter:意外的標記:(

錯誤

ERROR [2014-10-27 11:17:24,264] org.hibernate.hql.internal.ast.ErrorCounter: line 1:33: unexpected token: (
ERROR [2014-10-27 11:17:24,304] org.hibernate.hql.internal.ast.ErrorCounter: line 1:33: unexpected token: (
! antlr.NoViableAltException: unexpected token: (

ERROR [2014-10-27 11:17:24,306] org.hibernate.hql.internal.ast.ErrorCounter: line 1:68: unexpected token: MAX 
ERROR [2014-10-27 11:17:24,312] org.hibernate.hql.internal.ast.ErrorCounter: line 1:68: unexpected token: MAX 
! antlr.NoViableAltException: unexpected token: MAX 

查詢

String sSubQuery = "SELECT om.path, om.originalSize, MAX(om.lastModified) "+ 
        "FROM "+ 
        "ObjectMetadata om "+ 
        "WHERE om.informationStoreId = '"+informationStoreDefinitionID+"' "+ 
        "GROUP BY om.path, om.originalSize"; 

      String sQuery = "SELECT SUM(o.originalSize) "+ 
        "FROM "+ 
        "("+ 
        " "+sSubQuery+ 
        ") "+ 
        "o"; 

      Query q = getEm().createQuery(sQuery); 

請幫助。

+0

由於您沒有在外部查詢中使用'MAX(om.lastModified)',因此您可以忽略它。實際上,因爲你只是用一個過濾器來總結'om.originalSize',你根本不需要派生表? – StuartLC 2014-10-27 12:30:36

+0

表包含文件的元數據,它可能有多個條目對應於文件名,但它在表中具有不同的最後修改日期。我需要的是 - 最近更新或修改的所有文件的總大小。 – 2014-10-27 13:12:39

+0

當我在postgres中執行以下查詢時,它成功執行 - 「select sum(o.original_size)from(SELECT om.path,om.original_size, MAX(om.last_modified)FROM object_metadata om WHERE om.information_store_id = ' ff0dcb68-8aab-40f0-b8d8-fcfb82396f5d'GROUP BY om.path,om.original_size)o「;' – 2014-10-27 13:22:24

回答

1

嘗試

String sSubQuery = "SELECT SUM(om.originalSize), MAX(om.lastModified) "+ 
        "FROM "+ "ObjectMetadata om "+ 
        "WHERE om.informationStoreId = :informationStoreDefinitionID "+ 
        "GROUP BY om.path, om.originalSize"; 

Query q = getEm().createQuery(sQuery); 
q.addParameter("informationStoreDefinitionID",22); 
+0

@StuartLC我需要對'Max query(lastModified)''sub query'的結果應用'sum',所以'Sum()'需要適用於所有隻有'max''lastModified'的日期的記錄 – 2014-10-27 14:48:33

+0

http://stackoverflow.com/questions/26603496/org-hibernate-hql-errors-in-hql-subquries – 2014-10-28 09:04:04