Я использую следующий фрагмент кода для получения результатов из БД, так как набор результатов огромен.
Это правильный путь?
Я использую исключение "Недостаточно памяти" и подозреваю, что это из-за этого.
// div is set to 10,000
// i have calculated how many times i need do it using a count query
// and that value is being used in iteration variable
Query bigQ=session.createSQLQuery(bigQuery);
for(int i=0;i<iteration;i++)
{
bigQ.setFetchSize(div);
bigQ.setMaxResults(i*div);
List<Object[]> result=bigQ.list();
// now i am using the result to get the values
for(Object[] a:result)
{
// rest of operations
}
}
Примечание:
- Я установил достаточно Xms и -Xmx в
jboss run.conf
.
- Я не могу использовать набор прокрутки, так как драйвер postgre его не поддерживает.
- Я не могу использовать
createQuery
, так как в этом случае hibernate генерирует множество запросов, поэтому я использую большой запрос на соединение вместе с createSQLQuery
.