Liferay custom-sql usando o operador IN
Eu estou usando o Liferay 6.1, Tomcat e MySQL. Eu tenho uma frase de sql personalizada para um portlet de lista. O custom-sql usa dois parâmetros: uma matriz de groupIds e um limite de resultado.
SELECT
count(articleId) as count,
...
FROM comments
WHERE groupId IN (?)
GROUP BY articleId
ORDER BY count DESC
LIMIT 0, ?
Minha classe FinderImpl tem este método:
public List<Comment> findByMostCommented(String groupIds, long maxItems) {
Session session = null;
session = openSession();
String sql = CustomSQLUtil.get(FIND_MOST_COMMENTS);
SQLQuery query = session.createSQLQuery(sql);
query.addEntity("Comment", CommentImpl.class);
QueryPos queryPos = QueryPos.getInstance(query);
queryPos.add(groupIds);
queryPos.add(maxItems);
List<Comment> queryResult = query.list();
return queryResult;
}
Isso retorna 0 resultado. Se eu remover o WHERE IN (), ele funciona.
Está em um operador válido? Se não, como pode pesquisar em diferentes grupos?