Из php manual :
Для обратной совместимости, если PHP 5 не может найти функцию __construct () для данного класса, а класс не наследует один из родительского класса он будет искать функцию конструктора старого стиля по имени класса. Фактически это означает, что единственный случай, который имел бы проблемы с совместимостью, заключается в том, что у класса был метод с именем __construct (), который использовался для различной семантики.
Начиная с PHP 5.3.3, методы с тем же именем поскольку последний элемент имени класса с именами больше не будет рассматриваться как конструктор. Это изменение не влияет на классы, не связанные с именами.
Вы можете использовать имя класса как конструктор (если только класс не находится в пространстве имен), поскольку PHP5 сохраняет это для обратной совместимости с PHP4, но это не рекомендуется, потому что это старый способ и может быть удален в новых версиях php. Поэтому, если вы не пишете что-то, что по какой-то причине должно быть совместимым с PHP4, используйте
__construct()
.
Обновление: Я полагаю, что вызов getCurrentSession()
не гарантирует, что сессия действительно открыта. В первый раз вместо этого следует использовать
Session session = this.getSessionFactory().openSession();
session.beginTransaction();
getCurrentSession(). Это предложение фактически соответствует найденной вами странице.
Ранее:
Исходя из имеющейся на данный момент информации, можно сделать вывод, что причиной ошибки является неоткрытая сессия ;-)