【发布时间】:2018-11-15 08:30:28
【问题描述】:
我在 HQL 查询中传递了一个包含 1000 多个元素的列表,并且 收到此错误
maximum number of expressions in a list is 1000
我在 Stackoverflow 上阅读了几篇文章,其中建议将列表划分为几个子列表。
Query query = session.createQuery(
"SELECT r.subject, COUNT(DISTINCT ss.id), COUNT(DISTINCT r.uid)\n" +
"FROM " + R.class.getName() + " r\n" +
"," + SS.class.getName() + " ss\n" +
"WHERE r.id = ss.id\n" +
"AND r.uid in (:listMoreThan1000)\n" +
"GROUP BY r.subject\n"
);
query.setParameterList("listMoreThan1000", listMoreThan1000);
List<Object[]> rows = query.list();
// code to parse the rows
我是 HQL 查询的新手,谁能告诉我如何在我的代码中将 listMoreThan1000 划分为几个子列表?
【问题讨论】:
-
拆分列表与hql无关。用java代码做,多次调用Statement。