2013-03-01 6 views
1

Есть ли функция сеанса/спящего режима для повторного подключения/повторного открытияКак открыть сеанс спящего режима после закрытия сессии?

LOG: SEVERE: после закрытия соединения никаких операций не разрешено.

+3

нет, вам просто нужно открыть новый сеанс/соединение – radai

+0

Если вы должны были обеспечить больше контекста (когда это происходит, каковы рамки, которые вы используете, и так далее), то кто-то может быть способный помочь вам решить вашу * настоящую проблему. – parsifal

ответ

3

№ Вам следует создать/открыть новый Session.

0

Hibernate Docs about Seesion говорит

lifecycle из Session ограничена в начале и в конце logical transaction. (Длинные транзакции могут охватывать несколько транзакций с базой данных.)

Как только ваши, Session не будут доступны. Вы должны создать новый.

+0

Сессия не всегда связана с логической транзакцией, вы, как программист, должны решить, как она программирована – kingkong

1

Вот пример кода, как обеспечить, чтобы сеанс всегда был действительным. Строка 2 должна переназначить сеанс, так как openSession возвращает новый сеанс. Просто session.getSessionFactory().openSession() не достаточно.

if (!session.isOpen()) { 
     session = session.getSessionFactory().openSession(); 
     session.beginTransaction(); 
} 
// operate your session 
Criteria criteria = session.createCriteria(clazz); 
Смежные вопросы