2016-04-18 66 views
0

Hibernate會自動執行一些更新,例如創建表或列,但不要更改列的類型。例如,我們將列類型從long更改爲int,數據庫中的列類型仍爲bigint(PostgreSQL 9.5)。此外,我們爲LocalDateTime字段添加了類型轉換器,並且Hibernate創建了新字段timestamps,但不更改舊字段的類型。我們如何配置Hibernate讓它自動管理這些事情?有沒有辦法讓休眠自動管理數據庫?

+0

不可能與休眠,你應該自己動手。 –

回答

0

雖然我認爲這種做法非常糟糕,而且非常危險,但事實是您只需要正確的權限。

大多數SQL數據庫將數據庫信息存儲在系統模式中。您的應用的用戶必須有權利使用並可能會CRUD該架構。一旦你有了這些,只需要編寫hibernate類來管理表。

例如,如果我想換一個特定表屬於我可以做的模式,通過在PostgreSQL的執行這個語句:

update pg_tables set schemaname = 'newSchema' where tablename = 'xxx'; 

允許應用程序這樣做可能讓你到各種痛苦與苦難。包括期望某個動態更新的某個數據模型的錯誤;而且,如果你的應用程序被黑客入侵,你可能會丟掉你的所有表。

相關問題