從我的JUnit測試我打電話一個簡單的方法來清除我的表:Hibernate的聲明掛起
@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(字符串,布爾)線:100
呃,你會期望什麼進一步的輸出?我沒有看到任何聲明。 – Thomas 2011-05-17 09:18:23
lol對不起,我忘了提及我的程序沒有完成。它也不會從數據庫中的表中刪除內容 – Will 2011-05-17 10:03:44
執行clearTable()方法時表中有多少行? – MarkOfHall 2011-05-17 16:20:46