Hibernate MySQL查找未映射的表和列

时间:2017-11-22 11:29:35

标签: java mysql hibernate

我使用Hibernate的Autogenerate DDL功能来创建我的表和列。

但是,我最终删除了我的实体中的许多列,但这些列仍保留在数据库中。

是否有一个脚本可以识别那些未映射的列和表,以便我可以手动删除它们?

现在,我手动完成,但随着数据库的增长,它会出现问题。

2 个答案:

答案 0 :(得分:1)

推荐的是:

  1. 我们应该只在开发环境中使用hibernate.hbm2ddl.auto属性,而不是生产

  2. 如果hibernate.hbm2ddl.auto = create-drop,hibernate将在每次部署时删除并创建一个新数据库, 这意味着我们可以跟踪数据库状态及其一致性。

  3. 如果hibernate.hbm2ddl.auto = update,hibernate只会使用模型/实体类中的更改来更新数据库, 但它不应该被生产环境/数据库所信任。

  4. hibernate.hbm2ddl.auto应该设置为生产环境的默认值,这样就不会从生产中的hibernate中反映出数据库的更改。

答案 1 :(得分:0)

我担心你没有自动化的方法。

或者,您可以在构建和加载项目之前删除整个表,然后让hibernate使用您定义的列名重新创建它。