Foren

Home » Liferay Portal » Español » 3. Desarrollo

Kombinierte Ansicht Flache Ansicht Baumansicht
Threads [ Zurück | Nächste ]
toggle
d lopez
assetEntryQuery error (Bug?)
11. April 2013 23:22
Antwort

d lopez

Rang: New Member

Nachrichten: 16

Eintrittsdatum: 24. Januar 2013

Neue Beiträge

Buenos días, estoy intentando realizar una consulta para obtener una lista de assetEntry que pertenezcan a las categorias que pase por parametro de la siguiente forma:

1assetEntryQuery.setClassNameIds(classNameIds);
2assetEntryQuery.setEnd(end);
3assetEntryQuery.setStart(start);
4assetEntryQuery.setAllCategoryIds(selectedCategories);
5results = AssetEntryLocalServiceUtil.getEntries(assetEntryQuery);


El problema que tengo es que cuando la lista de "selectedCategories" tiene mas de un id de categoria no me devuelve resultados y se produce el siguiente error:

 1Caused by: com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.SQLGrammarException: could not execute query
 2    at com.liferay.portal.dao.orm.hibernate.ExceptionTranslator.translate(ExceptionTranslator.java:30)
 3    at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.list(SQLQueryImpl.java:111)
 4    at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.list(SQLQueryImpl.java:92)
 5    at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.iterate(SQLQueryImpl.java:80)
 6    ... 227 more
 7Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
 8    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
 9    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
10    at org.hibernate.loader.Loader.doList(Loader.java:2545)
11    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
12    at org.hibernate.loader.Loader.list(Loader.java:2271)
13    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316)
14    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842)
15    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
16    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157)
17    at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.list(SQLQueryImpl.java:99)
18    ... 229 more
19Caused by: org.postgresql.util.PSQLException: ERROR: error de sintaxis en o cerca de «EXISTS»
20  Position: 292
21    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
22    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
23    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
24    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
25    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
26    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)
27    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
28    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
29    at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)
30    at org.hibernate.loader.Loader.doQuery(Loader.java:802)
31    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
32    at org.hibernate.loader.Loader.doList(Loader.java:2542)
33    ... 236 more


Por lo que veo es un error al montar la sql, ¿es un error conocido de liferay? o ¿me falta algún parametro que pasarle a assetEntryQuery?
Octavio Sánchez
RE: assetEntryQuery error (Bug?)
12. April 2013 01:04
Antwort

Octavio Sánchez

Rang: Junior Member

Nachrichten: 80

Eintrittsdatum: 31. März 2009

Neue Beiträge

El error te da en la query:

EXISTS
(
SELECT
1
FROM
AssetEntries_AssetCategories
WHERE
(AssetEntries_AssetCategories.entryId = AssetEntry.entryId) AND
(AssetEntries_AssetCategories.categoryId IN ([$CATEGORY_ID$]))
)


que está en portal-impl/src/custom-sql/asset.xml

Por algún motivo esa query no es válida en Postgre. Yo que tú pondría un breakpoint en AssetEntryFinderImpl.buildAllCategoriesSQL y vería qué valor tiene la variable sql. Prueba a hacer la query en la consola de postgre directamente y ver qué error de sintaxis te da.

Lo mismo has dado con un bug, pero de postgre no sé nada por lo que no puedo decirte si es o no correcta.


Suerte.
Octavio
Juan Gonzalez
RE: assetEntryQuery error (Bug?)
12. April 2013 02:26
Antwort

Juan Gonzalez

LIFERAY STAFF

Rang: Liferay Legend

Nachrichten: 2176

Eintrittsdatum: 28. Oktober 2008

Neue Beiträge

Tiene pinta de ser esta incidencia:

http://issues.liferay.com/browse/LPS-29210