Foren

assetEntryQuery error (Bug?)

d lopez, geändert vor 11 Jahren.

assetEntryQuery error (Bug?)

New Member Beiträge: 16 Beitrittsdatum: 24.01.13 Neueste 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:

assetEntryQuery.setClassNameIds(classNameIds);
assetEntryQuery.setEnd(end);
assetEntryQuery.setStart(start);
assetEntryQuery.setAllCategoryIds(selectedCategories);
results = 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:

Caused by: com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.SQLGrammarException: could not execute query
	at com.liferay.portal.dao.orm.hibernate.ExceptionTranslator.translate(ExceptionTranslator.java:30)
	at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.list(SQLQueryImpl.java:111)
	at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.list(SQLQueryImpl.java:92)
	at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.iterate(SQLQueryImpl.java:80)
	... 227 more
Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.loader.Loader.doList(Loader.java:2545)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
	at org.hibernate.loader.Loader.list(Loader.java:2271)
	at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316)
	at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842)
	at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
	at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157)
	at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.list(SQLQueryImpl.java:99)
	... 229 more
Caused by: org.postgresql.util.PSQLException: ERROR: error de sintaxis en o cerca de «EXISTS»
  Position: 292
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:273)
	at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1953)
	at org.hibernate.loader.Loader.doQuery(Loader.java:802)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
	at org.hibernate.loader.Loader.doList(Loader.java:2542)
	... 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, geändert vor 11 Jahren.

RE: assetEntryQuery error (Bug?)

Junior Member Beiträge: 80 Beitrittsdatum: 31.03.09 Neueste 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
thumbnail
Juan Gonzalez, geändert vor 11 Jahren.

RE: assetEntryQuery error (Bug?)

Liferay Legend Beiträge: 3089 Beitrittsdatum: 28.10.08 Neueste Beiträge
Tiene pinta de ser esta incidencia:

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