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