Hibernate: hibernate.hbm2ddl.auto=update 显示生成的 sql

Posted

技术标签:

【中文标题】Hibernate: hibernate.hbm2ddl.auto=update 显示生成的 sql【英文标题】:Hibernate: hibernate.hbm2ddl.auto=update show generated sql 【发布时间】:2011-01-27 02:52:34 【问题描述】:

我想传给Hibernate的SessionFactory

hibernate.hbm2ddl.auto=update

并在日志文件中查看生成的 sql 语句。是否可以不使用java编码(知道如何使用SchemaExport实现结果,但希望hibernate有“in box”解决方案)

【问题讨论】:

【参考方案1】:

你可以设置日志到 System.out 使用

SessionFactory sf = new Configuration().setProperty("hibernate.show_sql", "true")

或log4j

log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER   
log4j.additivity.org.hibernate.SQL=false

编辑:这可能也有帮助 Hibernate sql logging with values

【讨论】:

不幸的是,hbm2ddl 忽略了这两个选项。所以我在日志文件中看不到任何更改/创建语句。 @FoxyBOA 对于您应该尝试的 ddl 语句:log4j.logger.org.hibernate.tool.hbm2ddl=debug【参考方案2】:

你也可以设置调试断点

org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(boolean, boolean)

看看进展如何。

【讨论】:

SchemaExport,如果这不是更新而是初始架构创建

以上是关于Hibernate: hibernate.hbm2ddl.auto=update 显示生成的 sql的主要内容,如果未能解决你的问题,请参考以下文章

spring.jpa.hibernate.hbm2ddl 和 spring.jpa.hibernate.ddl 之间的区别

hibernate.hbm2ddl.auto Hibernate 如何决定何时创建或更新 ddl?

Hibernate、MySQL 视图和 hibernate.hbm2ddl.auto = 验证

Hibernate_配置参数hibernate.hbm2ddl.auto

hibernate.hbm2ddl.auto配置详解

hibernate.hbm2ddl.auto配置详解