Liferay custom-sql mit dem IN-Operator
Ich benutze Liferay 6.1, Tomcat und MySQL. Ich habe einen benutzerdefinierten SQL-Satz für ein Listenportlet. Das custom-sql verwendet zwei Parameter: ein Array von groupIds und ein Ergebnislimit.
SELECT
count(articleId) as count,
...
FROM comments
WHERE groupId IN (?)
GROUP BY articleId
ORDER BY count DESC
LIMIT 0, ?
Meine FinderImpl-Klasse hat diese Methode:
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;
}
Dies gibt 0 Ergebnisse zurück. Wenn ich das WHERE IN () entferne, funktioniert es.
Ist IN ein gültiger Operator? Wenn nicht, wie kann in verschiedenen Gruppen gesucht werden?