2009-10-26 250 views
0

我試圖從數據庫異步加載一些信息。休眠異常

我有一個與ClassB具有一對一關係的類A.

我做什麼,在數據庫中獲得A級的數量,然後加載類的數量有限

,因爲Hibernate運行3個查詢:首先得算,第二個拿到A級,第三加載B類在A級映射

我運行它非同步使用這樣的計時器:

Timer timer = new Timer(true); 
    // add the task to the timer 
    timer.schedule(task, 1); 

的task.run調用加載方法

如果我沒有使用計時器,測試工作正常。如果我正在使用它,Hibernate會拋出一個TableNotFound異常的第三個查詢

任何想法,有什麼問題?

+0

Hibernate沒有'TableNotFoundException'; Hadoop的確如此。你至少可以發佈有問題的堆棧跟蹤嗎?顯示「加載」代碼以及適當的映射也會有所幫助。 – ChssPly76 2009-10-26 18:11:43

+0

是的,它不是一個休眠異常,hibernate拋出一個關於未找到表的SQL錯誤的異常b/c – Noura 2009-10-28 11:23:25

回答

0

感謝您的回覆。

在檢查堆棧跟蹤之後,我發現hibernate映射對某些類有問題,該類有@IndexColumn,名稱爲「order」,這是SQL上的一個關鍵字,可防止創建表。

我不知道它爲什麼工作w/out計時器,並發現錯誤瓦特/計時器。

重命名IndexColumn後,測試工作正常

1

您的計時器是否使用相同的SessionFactory?你的SessionFactory可能沒有配置你的hibernate.cfg.xml信息。