Liferay 6.1、Tomcat、MySQLを使用しています。リストポートレットのカスタムSQL文があります。custom-sqlは、groupIdの配列と結果の制限という2つのパラメーターを使用します。
SELECT
count(articleId) as count,
...
FROM comments
WHERE groupId IN (?)
GROUP BY articleId
ORDER BY count DESC
LIMIT 0, ?
私のFinderImplクラスには次のメソッドがあります。
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;
}
これは0の結果を返します。WHERE IN()を削除すると、機能します。
INは有効な演算子ですか?そうでない場合、どのようにして異なるグループ内を検索できますか?