有没有办法让hibernate自动管理数据库?

时间:2016-04-18 19:11:49

标签: java hibernate postgresql

Hibernate会自动执行一些更新,例如创建表格或列,但不会更改列类型。例如,我们将列类型从long更改为int,将列类型更改为bigint(PostgreSQL 9.5)。此外,我们为LocalDateTime字段添加了类型转换器,并且Hibernate创建了新字段timestamps但不改变旧字段的类型。我们如何配置Hibernate让它自动管理这些东西?

1 个答案:

答案 0 :(得分:0)

虽然我认为这种做法非常糟糕,而且非常危险,但实际情况是你需要正确的权限。

大多数SQL数据库将数据库信息存储在系统架构中。您的应用程序的用户必须具有使用权限,并且可能需要CRUD该模式。有了这个,只需要编写hibernate类来管理表。

例如,如果我想更改特定表所属的模式,我可以通过在PostgreSQL中执行此语句来实现:

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

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