Исключение ввода-вывода при попытке выбора данных с помощью предложения In-List в Hibernate - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь выбрать 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: ошибка ввода-вывода при отправке на сервер.

...