Зависает 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 лежат реализации. Напишите, пожалуйста, если не хватает информации.