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 = 验证