Я пытаюсь выбрать 100_000 записей из таблицы с 7 миллионами записей, используя пункт списка в Hibernate. Проблема в том, что я получил исключение ввода / вывода.
Я пытался использовать ScrollableResults, но не работает.
long inListNeEntries = 100_000;
List<Long> objectKeyList = new ArrayList<>();
int count = 0;
while (count < inListNeEntries) {
objectKeyList.add((long) count);
count++;
}
EntityManager em = emf.createEntityManager();
Session session = em.unwrap(Session.class);
Query query = session.createQuery("select p from PushedImsi p
where p.objectKey in (:objectKeyList)");
query.setParameter("objectKeyList", objectKeyList);
query.setFetchSize(1000);
query.setCacheMode(CacheMode.IGNORE);
ScrollableResults cursor = query
.scroll(ScrollMode.FORWARD_ONLY);
long l1 = System.currentTimeMillis();
int i = 0;
while (cursor.next()) {
PushedImsi pushedImsi = (PushedImsi)cursor.get(0);
session.evict(pushedImsi);
i++;
}
long l2 = System.currentTimeMillis();
Я действительно ожидаю, что все объекты из этого списка 100_000 будут выбраны из базы данных.
Что я имею:
Причина: JDBCConnectionException: ошибка ввода-вывода при отправке серверу.
org.postgresql.util.PSQLException: ошибка ввода-вывода при отправке на сервер.