ORA-01795: 列表中的最大表达式数为 1000 解决办法

for (int i = 0; i < list.size(); i++) {

				if (i == (list.size() - 1)) {
					sqlString.append(list.get(i)); //SQL拼装,最后一条不加“,”。
				}else if((i%999)==0 && i>0){
					sqlString.append(list.get(i)).append(") or id in ("); //解决ORA-01795问题
				}else{
					sqlString.append(list.get(i)).append(",");
				}
			} 

hql = "from Table r where r.id in("+sqlString+") order by r.layerOrder";

你可能感兴趣的:(ORA-01795: 列表中的最大表达式数为 1000 解决办法)