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