Если вы просто хотите использовать SessionFactory.getCurrentSession()
, вы можете просто добавить следующие две строки в ваш hibernate.cfg.xml:
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.current_session_context_class">thread</property>
Это даст вам уникальный сеанс для каждого потока. Поскольку запрос сервлета всегда обрабатывается в одном потоке (учитывая, что ваш код не порождает новые), сессия будет жить для всего запроса.
Не забудьте использовать фильтр, чтобы закрыть сеанс после запроса!