2016-05-31 53 views
4

我想了解如何配置我的Hibernate與我的MSSQL數據庫及其架構正常工作。MSSQL架構和休眠5.1.0.Final(表未找到)

的問題是,表的驗證過程中,它會記錄(爲每個表):

org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl 
- HHH000262: Table not found SHARED_CONFIGURATION 

我調試Hibernate來找出是什麼原因導致這一點,並發現它調用類似:

EXECUTE [mydb]..sp_columns N'SHARED_CONFIGURATION',N'',N'mydb' 

請注意,第二個參數是模式名稱,並且傳遞了空字符串。當我試圖對數據庫運行這個查詢時,它返回了空的結果集。但是,當我傳遞'dbo'作爲第二個參數時,結果集不是空的(這意味着Hibernate應該調用它)。

好吧,我好像我需要定義架構。但是,在我的entites註解@Table都設置hibernate.default_schema或設置模式拋出異常:

Schema-validation: missing table [SHARED_CONFIGURATION] 

所以現在我想知道什麼是真正的問題。我也想在我的數據庫中設置默認模式但不允許(因爲它不存在或您沒有權限,所以不能更改用戶'sa'),即使使用用戶'sa'本身執行:

ALTER USER sa WITH DEFAULT_SCHEMA = dbo; 

請注意,這發生在任何驅動程序(JTDS,官方MS驅動程序..) 有人可以解釋這裏發生了什麼,以及如何「正確」擺脫日誌中的表示即使存在(並且應用程序能夠與數據庫正常運行)?

+0

解決了嗎?我有完全相同的問題。 –

+0

不幸的是我沒有 – d1x

回答

0

我有同樣的問題,並通過你揭開這背後的原因設置屬性hibernate.hbm2ddl.jdbc_metadata_extraction_strategyindividually