SQL in子句中的项目> 1000

时间:2016-07-19 10:41:37

标签: java mysql sql oracle jdbc

0我有这个方法:

public List<Product> getProductsByListIds(List<Long> ids) {
    String query = "from Product pr where pr.id in(:ids)";
    List<Product> products= (List<Product>) getSession().createQuery(query)
        .setParameterList("ids", ids).list();
    return products;
  }

这种方法没问题,唯一的问题是ids.size() >1000 我试图找到一个令人信服的解决方案来解决这个问题。

1 个答案:

答案 0 :(得分:0)

我的建议是退后一步,看看设计和你想要实现的目标,将数百个参数传递给SQL语句不会非常有效,如果是这样的话,我会感到惊讶最符合您要求的优雅解决方案。

如果不了解更多关于如何调用此方法以及此ID列表来自哪里很难给出具体建议,但我建议您尽可能使用连接。