Из моего теста junit я вызываю простой метод для очистки моей таблицы:
@AfterClass
public static void runAfterClass() {
//Clear db contents after tests
// NOTE this clears ALL data from the table
try {
System.out.println("deleting db contents");
HibFunction.clearTable();
} catch (Exception e) {
System.out.println("Couldnt delete db contents");
e.printStackTrace();
}
clearTable выглядит следующим образом:
public static void clearTable()
{
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction transaction = null;
try{
transaction = session.beginTransaction();
session.createQuery("delete from metadataPoC.hib.TestHib").executeUpdate();
transaction.commit();
}catch (HibernateException e) {
transaction.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
Все довольно простые вещи, однако вывод моей консолине идет дальше:
deleting db contents
Я не уверен, почему именно простой delete from classname
может вызвать такие проблемы.Программа только что зависла на 10 минут без сбоев или результатов теста junit.
Редактировать
Однако я выделил проблему для метода clearTable ()переместил его в коде и как только он вошел, зависает!Я не совсем уверен, почему именно из информации, которую я нашел в Интернете, мой метод кажется правильным из того, что я вижу.Но это должен быть этот метод.Я поместил его в @BeforeClass
, и тест просто завис, когда он дошел до него.
В итоге возникла проблема с методом clearTable ().Ты не представляешь, что: (
EDIT 2
отследил проблему до части команды executeupdate по любой причине, по которой она просто останавливается, как только достигает:
ParseUtil.encodePath (String, boolean) line: 100