2012-02-22 57 views
0

我曾經有一個名爲database的數據庫,並且使用hibernate及其模型一切正常。Hibernate數據庫名稱更改導致MySQLSyntaxErrorException:表不存在

我刪除了<property name="hibernate.hbm2ddl.auto">以避免更新或創建,因爲它是生產服務器,我們希望手動完成。

我們最近切換到database2,所以我們切換了hibernate配置文件和所有的hibernate XML模型。

`<class name="com.api.models.database.MmApplications" table="mm_applications" catalog="database2">` 

,但它一直在尋找database事件,如果我們遷移的數據庫,模型和聯接。

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'database.mm_applications' doesn't exist 

有人能幫助我嗎?

UPDATE ----

休眠被連接到正確的數據庫(DATABASE2),但有一個前綴作爲前綴database.使擊中database代替database2查詢,當我試圖迫使default_schema我的查詢變成:

`... from database.database2.mm_applications ....` 

有什麼想法嗎?

回答

0

我發現這個問題,這是部署使用與其他數據庫(database)使得新的應用程序衝突休眠以及同一Tomcat服務器上的其它應用...

還有一些奇怪的,通過連接到任何數據庫,hibernate將使用hibernate模型中的指定目錄,因此使用catalog.table_name構建請求。希望這有助於某人某一天。

1

我的數據庫在hibernate.connection.url屬性中指定。你也改變了嗎?一個例子是:jdbc:mysql://localhost/mydatabase

此外,而不是刪除hibernate.hbm2ddl.auto那麼也許你應該將其值設置爲validate。這樣hibernate將確保數據模型匹配數據庫模式。

+0

是的,我更改了新數據庫名稱的配置文件中的URL。我之前嘗試過使用驗證並給了我文本字段的麻煩,所以我決定刪除它,我會試着用它來看看它是如何發生的。 – 2012-02-22 11:53:20

+0

它告訴我我的表格甚至沒有使用'數據庫'。既不'數據庫2'。 ,但在我的展示桌上它就在這裏 – 2012-02-22 18:56:53

相關問題