Зависает executeUpdate() при удалении таблицы после её создания

У меня есть DAO реализация взаимодействия с БД через JDBC(UserDaoJDBCImpl()) и через Hibernate(UserDaoHibernateImpl()) по отдельности. В них есть методы создания(createUsersTable()) и удаления(dropUsersTable()) таблицы, которые в обеих реализациях сделаны через метод statement.executeUpdate(). Запуск через JDBC реализацию проходит без оказий. А проблема в следующем: если после использования метода с Hibernate имплементацией создать или удалить таблицу, то statement.executeUpdate(); зависнет. Я думаю, это связано с тем, что не закрылся ресурс после использования Hibernate, но не пойму, что именно. Ниже методы создания, удаления и один из методов после которого идёт капут. А также ссылка на гитхаб

createUsersTable()

public void createUsersTable() {
    try (Statement statement = Util.connectDB().createStatement()) {
        statement.execute("CREATE TABLE IF NOT EXISTS User " +
                "(id BIGINT primary key not null auto_increment," +
                "name VARCHAR(50) not null," +
                "lastName VARCHAR(50)," +
                "age TINYINT )");
    } catch (SQLException e) {
        System.out.println("Create table Exception");
    }
}

dropUsersTable():

public void dropUsersTable() {
    try (Statement statement = Util.connectDB().createStatement()) {
        statement.executeUpdate("DROP TABLE IF EXISTS User");
    } catch (SQLException e) {
        System.out.println("Дроптэйбл экзепшн");
    }
}

Сохранению юзера с гибернейтом:

public void saveUser(String name, String lastName, byte age) {
    Session session = Util.getSessionFactory().openSession();
    Transaction transaction = session.beginTransaction();
    session.save(new User(name, lastName, age));
    session.getTransaction().commit();
    session.close();
}

Ссылка на проект в гитхабе
В папке test лежит юнит тест; в папке jdbc лежат реализации. Напишите, пожалуйста, если не хватает информации.


Ответы (0 шт):