Liferay custom-sql przy użyciu operatora IN
Używam Liferay 6.1, Tomcat i MySQL. Mam zdanie niestandardowe sql dla portletu listy. Custom-sql używa dwóch parametrów: tablicy groupIds i limitu wyników.
SELECT
count(articleId) as count,
...
FROM comments
WHERE groupId IN (?)
GROUP BY articleId
ORDER BY count DESC
LIMIT 0, ?
Moja klasa FinderImpl ma tę metodę:
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;
}
Zwraca to 0 wyników. Jeśli usunę WHERE IN (), działa.
Czy jest prawidłowym operatorem? Jeśli nie, w jaki sposób można wyszukiwać w różnych grupach?