От нехватки алкоголя в организме начал кодить на непонятном мне диалекте Явы ... ибо по другому этого не назовешь ... когда написал ... понял насколько опух ... и что нужен отдых ... итак ...
Индусы нервно курят в сторонке....
final int bufSize = 999; List<Criterion> cr = new ArrayList<Criterion>(); if (bufSize > paymentIds.size()) for(int i = bufSize; i < paymentIds.size(); i+=bufSize) cr.add(Expression.in("id", paymentIds.subList(i-bufSize, i-1))); cr.add(Expression.in("id", paymentIds.subList((paymentIds.size()/bufSize) * bufSize , paymentIds.size()-1))); for (int i = 0; i < cr.size() - (cr.size() % 2); ) criteria.add(Expression.or(cr.get(i++),cr.get(i++))); if (cr.size() % 2 != 0) { //not pair if (cr.size() == 1) criteria.add(cr.get(0)); else criteria.add(Expression.or(cr.get(cr.size()-2),cr.get(cr.size()-1))); }
Индусы нервно курят в сторонке....