Я часто использую следующий запрос Hibernate при получении нескольких записей по их первичному ключу
Criteria c = session
.createCriteria(Song.class)
.setLockMode(LockMode.NONE)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.add(Restrictions.in("recNo", ids));
List<Song> songs = c.list();
Проблема в том, что количество идентификаторов может варьироваться от 1 до 50, а для каждого различного числа идентификаторов требуется разное PreparedStatement. Это в сочетании с тем фактом, что какой-либо конкретный подготовленный оператор связан с конкретным подключением к пулу базы данных, означает, что возможность повторного использования PreparedStatement довольно мала.
Есть ли способ, которым я могу переписать это так, чтобы один и тот же оператор мог использоваться с разным числом значений, я думаю, что я где-то читал, что это можно сделать, используя ЛЮБОЙ, но не могу найти ссылку.