Я получаю следующее сообщение об ошибке при попытке выполнить ниже query-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
Таблица содержит метаданные файлов и может содержать несколько записей в соответствии с именем файла, но в таблице она имеет различную последнюю измененную дату. Мне нужен - общий размер всех файлов, которые недавно были обновлены или изменены. –
Когда я выполняю следующий запрос в 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 ";' –