Примечание. Этот вопрос связан с моим предыдущим.
Я использую hibernate.current_session_context_class=thread
в своей конфигурации Hibernate и получаю сеансы Hibernate через SessionFactory.getCurrentSession()
по мере необходимости. Таким образом, он создает или дает мне существующие сеансы, когда это необходимо, поэтому я не забочусь об этом.
Это все здорово, но что делать, когда я получаю, например, HibernateException
, ConstraintViolationException
? Затем текущий сеанс, который я получил ранее, становится недействительным, и я больше не могу его использовать, даже для чтения некоторых дополнительных данных (согласно многим форумам, которые я читал). Как я могу отказаться и получить новый сеанс в определенной области? Я думаю, что вызов SessionFactory.getCurrentSession()
во второй раз все равно вернет мне ту же недействительную сессию!?