5
我正在使用Hibernate和MySql服務器。我使用多個數據庫作爲「命名空間」(例如users
,transactions
,logging
等)。爲什麼Hibernate生成這個SQL查詢?
所以,我configued Hibernate來無法連接到特定的數據庫:
url = jdbc:mysql://127.0.0.1/
其中表位於HBM文件中定義通過catalog
屬性的數據庫:
<class name="com.myApp.entities.User" table="user" schema="" catalog="users"> ...
當我想加載一些數據時,一切正常,Hibernate似乎生成了預期的SQL查詢(通過在表名中使用目錄前綴),例如:
select id from users.user
然而,當我嘗試添加一個新的記錄時,Hibernate不使用from [catalog].[table_name]
語法了。所以我得到一個MySQL錯誤'沒有選擇數據庫'。
select max(id) from user
Hibernate是爲了嘗試讓未來的ID來創建一個新的記錄,但它沒有指定在數據庫所在的表,它應該是:
select max(id) from users.user
爲什麼Hibernate的生成這個無效的查詢?有人遇到過這個問題嗎?
你使用的是什麼版本的hibernate? –
我正在使用Hibernate-4.2.2 –
如果您使用:schema =「users」catalog =「users」,會發生什麼情況? – Rafa