【问题标题】:How to validate Hibernate mapping against database如何验证针对数据库的 Hibernate 映射
【发布时间】:2011-01-08 03:59:55
【问题描述】:

如何检查 Hibernate 映射配置是否匹配数据库?我想知道在我开始执行更新和查询之前是否使用了错误版本的休眠映射,然后会失败。

我有一堆用 Hibernate 注释映射的类。我也有连接到相应的数据库。现在我想检查 Hibernate 映射是否与数据库匹配。

我想至少检查以下几点:

  • Hibernate 配置中的所有映射表在数据库中都有对应的对象(例如表或视图)
  • 数据库中存在所有映射字段
  • 所有映射的字段都有正确的类型

我宁愿不必对映射表执行查询,最好仅基于数据库元数据进行检查。

【问题讨论】:

    标签: database hibernate orm


    【解决方案1】:

    来自Hibernate configuration docs

    hibernate.hbm2ddl.auto

    在创建 SessionFactory 时自动验证模式 DDL 或将其导出到数据库。使用 create-drop,当 SessionFactory 显式关闭时,数据库模式将被删除。

    例如验证 |更新 |创建 |创建删除

    因此,您可以将其设置为validate,它将验证您的休眠映射中的所有内容是否存在于数据库中。如果将其设置为update,那么每次添加映射类或属性时,都会更新底层数据库架构以反映该更改。

    您还有一个命令行工具 - SchemaUpdate

    【讨论】:

    • 我正在寻找类似的东西。但是 API 中有什么东西可以通过编程方式执行吗?
    • 您可以通过编程方式执行它。编写一个小程序,创建一个打开“验证”的 SessionFactory。
    • 是的,有一个命令行工具 - 我将它添加到我的答案中。或者最好按照 duffymo 的建议去做。
    猜你喜欢
    • 1970-01-01
    • 2011-03-06
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    相关资源
    最近更新 更多