嗨我从db获取数据但是我得到了这个例外:
ora-01795列表中的最大表达式数为1000 我检查了我在传递给查询IN参数的列表中有超过2000个条目。我的代码如下所示
String id ="";
sqlQueryBuff = sqlQueryBuff.append("t.id IN (");
for (Iterator iterator = resultList.iterator(); iterator.hasNext(); ) {
id = (String) iterator.next();
if (iterator.hasNext())
sqlQueryBuff.append(" '" + id + "' , ");
else
sqlQueryBuff.append(" '" + id + "' ) ");
}
query = session.createQuery(sqlQueryBuff.toString());
List list =query.list();
return list;
我该如何解决这个问题 感谢
答案 0 :(得分:0)
糟糕的方法是将ID列表最多分成999个条目,并在这一串中得到结果。
更好的方法是使用PreparedStatement
及其addBatch()
executeBatch()
方法。