我可以在 Play 上记录 hibernate 的 DDL 代码吗?启动?
Posted
技术标签:
【中文标题】我可以在 Play 上记录 hibernate 的 DDL 代码吗?启动?【英文标题】:Can I log hibernate's DDL code on Play! startup? 【发布时间】:2012-06-07 15:56:38 【问题描述】:我们的应用程序是在 Java over Play 上开发的! 1.2.4。我们在 ORM 中使用 JPA over Hibernate。
根据 Play! 的默认配置,我们的开发环境将 DDL 设置为 false,而 prod 环境将其设置为 true。
到目前为止,数据库中的更改要求我们编写 SQL 脚本以在生产环境中运行,方法是:a) 了解更改的内容并将其添加到脚本文件中,或者 b) 手动检查数据库以编写增量代码。
如果我们能获得 Hibernate 执行的所有 DDL 操作的日志,那就太好了,省去了打字和手动验证。
我在 Play 上找不到任何关于此的信息!或 Hibernate 文档。
我试过在 application.conf 上设置这个,但没有成功:
jpa.debugSQL=true
我可以看到 Select 操作,但没有 DDL。
【问题讨论】:
【参考方案1】:Hibernate 有几个可以在 log4j.properties 中设置的日志类别。 如果您不使用 log4j.properties,请按照here 的说明创建一个。
那你需要一个hibernate日志分类列表,可以找到here。
例如,如果您想记录 DDL 语句,您应该将以下行添加到 log4j.properties 文件中:
# Log all SQL DDL statements as they are executed
log4j.logger.org.hibernate.tool.hbm2ddl=trace
您还可能会发现 jpa.ddl 参数很有用,请参阅 Play 文档了解更多信息。
【讨论】:
以上是关于我可以在 Play 上记录 hibernate 的 DDL 代码吗?启动?的主要内容,如果未能解决你的问题,请参考以下文章
Play 2.4 JPA/Hibernate EntityManager 不刷新到数据库
有人设法在 Play Store 上发布具有短信和通话记录权限的应用程序吗?