【问题标题】:H2 database schema creation checkH2 数据库模式创建检查
【发布时间】:2011-11-23 13:20:46
【问题描述】:

我使用 Hibernate 和 Spring 为我的测试用例即时生成了 H2 数据库。 我有一些奇怪的错误,我想确切地知道架构在 H2 中的样子。表是如何定义的,列是如何定义的。 如何在运行时生成此报告?

【问题讨论】:

  • 如果您需要细粒度,您应该查找持久性表和列注释。您可以指定和控制事物的名称。有时 Hibernate 存在双向集合问题(...无法获取多个 Bags...如果您来自 Eclipselink 或 Toplink 并且您有复杂的关系,这是一个常见的消息)

标签: java hibernate spring h2


【解决方案1】:

如果模式是由 Hibernate 使用 hibernate.hbm2ddl.auto=true 部署的,您可以为 org.hibernate.tool.hbm2ddl 打开跟踪日志记录。这将向您显示 DDL Hibernate 在创建架构时正在生成。

【讨论】:

    【解决方案2】:

    您可以运行 SQL 语句 SCRIPT NODATA

    要查看针对数据库运行的 SQL 语句,请将 ;TRACE_LEVEL_FILE=2 附加到数据库 URL。这会将所有 SQL 语句写入.trace.db 文件。

    【讨论】:

    • 它很好用,但实际上我使用它就像“SCRIPT NODATA TO 'create.sql'”一样,这样我就知道它的确切保存位置。
    【解决方案3】:

    如果您想知道动态生成的模式是什么。只需添加

    <prop key="hibernate.show_sql">true</prop>    
    

    有了这个你就可以调试了。

    【讨论】:

      猜你喜欢
      • 2016-12-26
      • 1970-01-01
      • 2017-01-10
      • 2019-07-25
      • 2013-01-31
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 2012-08-06
      相关资源
      最近更新 更多