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';
允许您的申请这样做会让您感受到各种各样的痛苦。包括期望动态更新的某个数据模型的故障;并且,如果您的应用程序遭到黑客入侵,您可以删除所有表格。