Вот рекомендация на веб-сайте Hibernate по настройке Hibernate с Tomcat . Также ваше заявление «Каждый сеанс фабрики должен относиться к одному соединению JDBC». неправильно. Завод создается один раз и кэшируется. Затем он может быть использован для создания «сеанса», которые являются своего рода оболочкой на JDBC-соединении и в некотором смысле можно считать аналогом соединения JDBC.