我收到以下錯誤,當我嘗試執行下面的查詢 -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);
請幫助。
由於您沒有在外部查詢中使用'MAX(om.lastModified)',因此您可以忽略它。實際上,因爲你只是用一個過濾器來總結'om.originalSize',你根本不需要派生表? – StuartLC 2014-10-27 12:30:36
表包含文件的元數據,它可能有多個條目對應於文件名,但它在表中具有不同的最後修改日期。我需要的是 - 最近更新或修改的所有文件的總大小。 – 2014-10-27 13:12:39
當我在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