Я использую спящим режим, чтобы управлять своим взаимодействием базы данных/javaWebApplication с новыми требованиями я должен был иметь прокрутку результатов и сопоставить свои результаты запроса, я сделал этот общий класс в Java, чтобы вернуть scrollableResultsGeneric зимует прокрутку результат метод
public ScrollableResults executeCursorQuery(final String
queryString, final Object... params) throws PersistenceException
{
Session session = SessionFactoryUtil.getSessionFactory().openSession();
SQLQuery sqlQuery = session.createSQLQuery(queryString);
int position = 0;
for (Object param: params) {
sqlQuery.setParameter(position, param);
position++;
}
ScrollableResults results = sqlQuery.scroll();
return results;
}
я итерация по результату и карта своей информации отлично и после того, как я сделал я сделать
SessionFactoryUtil.getSessionFactory().getCurrentSession().close();
это работает довольно хорошо, но после нескольких обращений к этому методу происходит сбой приложения, я предполагаю, что это происходит из-за сессии открываются каждый раз, потому что Я также использую c3p0 для обработки пула соединений. Я действительно не знаю, что я нахожусь на петле здесь, если кто-то видит ошибку или знает, что я делаю неправильно, и могу указать мне в правильном направлении, это будет очень признательно.
Какая база данных использует? –
Обратите внимание, что существует тонкая разница между методом getSession() и openSession(). Если вы используете openSession(), закройте объект sesssion, вызвав session.close(). http://stackoverflow.com/questions/8046662/hibernate-opensession-vs-getcurrentsession –
да, но мне нужно, чтобы сеанс был открыт, чтобы иметь возможность перебирать результат запроса, и я закрываю его после выполнения im, но это не так, t, похоже, работает. Я разместил строку кода, которую я использую, чтобы закрыть ее, и она должна работать, но это не так. – fr3d0